- - PR -
datagridviewの列の手動再配置時のイベント
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-02-15 13:49
datagridviewで列を手動再配置したときに発生するイベントを
探しておりますが http://msdn2.microsoft.com/ja-jp/library/system.windows.forms.datagridview_members(VS.80).aspx ここのページを探しましたがありそうでなさげなのですが イベントはあるのでしょうか? ご存知の方教えていただけると幸いです。 | ||||||||
|
投稿日時: 2007-02-15 20:47
「手動再配置」というのは、AllowUserToOrderColumnsをTrueに設定したDataGridViewで、
ユーザーが列ヘッダーをドラッグして移動したときのことでしょうか? 試していませんが、DataGridViewColumnCollection.CollectionChangedはどうでしょうか? | ||||||||
|
投稿日時: 2007-02-16 15:06
手動再配置の意味は全くそのとおりです。
教えていただいたイベントは最初プロパティウィンドウに 見当たらなかったので何のことかと思いましたが、 調べてみてわかりました。 イベントを自分でこさえるのは初めてだったので ちょっとてこづってしまいました。 それでやってみたのですが、列をドラッグして 移動してもイベントは発生しませんでした。 MSDNの説明として コレクションの変更の例としては、列の追加や削除などがあります。 と書いてありましたが列を追加しても起きませんでした。 宣言の仕方がわるかったのか。。 とりあえず、なんにしてもありがとうございました。 お陰でイベントの起こし方を学習できました。 | ||||||||
|
投稿日時: 2007-02-16 15:43
DataGridView.ColumnDisplayIndexChanged イベントが使用できると思います。
ただ、気をつけなくてはいけないのは、このイベントは移動された列全てに 対して呼ばれるので、イベントハンドラに処理を書くと何度もその処理が呼 ばれてしまう可能性があることです(という経験をしたので)。 例えば
という列があったとして、C列をドラッグして
このような形に並べ替えると
e.Column を見ればイベントが起こったときの目的の列もつかめそうですが。 その点に気をつければ大丈夫だと思います。 _________________ ぽぴ王子@わんくま同盟 ぽぴ王子の人生プログラミング中 / ぽぴンち。 | ||||||||
|
投稿日時: 2007-02-16 16:34
ぽぴ王子さんありがとうございます。
やってみたところ見事にイベントが発生しました。 僕は、このイベントで列ヘッダのTextを その列の番号にする操作をしたかったのですが、 このイベントだと動かした列だけではなく 動かされた列もイベントが発生するので かえって好都合でした。 どうもありがとうございます。 |
1