- PR -

datagridviewの列の手動再配置後の番号

1
投稿者投稿内容
未記入
大ベテラン
会議室デビュー日: 2005/08/25
投稿数: 145
投稿日時: 2007-04-13 19:55
C#のdatagridviewで列を手動再配置した後
dataGridView1.Columns[bango]・・・・
このように列ごとの処理をしようとしたところ
再配置前の列の順番で処理されてしまいます。
そうではなく、再配置後の画面の状態の列の順番に
割り振られている番号で処理をするにはどうしたらよいでしょうか。
ダッチ
大ベテラン
会議室デビュー日: 2005/10/31
投稿数: 113
投稿日時: 2007-04-14 20:13
DataGridView コントロールにそのような機能が備わっているかわかりませんが、
各列の表示上のインデックスを取得する事は出来ます。

DataGridViewColumn.DisplayIndex プロパティ

後は列のインデックスと表示上のインデックスの対応表を作成すれば出来ると思います。
未記入
大ベテラン
会議室デビュー日: 2005/08/25
投稿数: 145
投稿日時: 2007-04-14 23:01
ありがとうございます。
DisplayIndexプロパティの存在は知っており、
妥協案としてwhileで全部の列のDisplayIndexを調べて
該当の列を処理するといったことをしておりましたが、
何だかうまくないなと思い質問させていただきました。
DisplayIndexの番号を指定して処理できればいいのですが
意外にないものですね。
ダッチ
大ベテラン
会議室デビュー日: 2005/10/31
投稿数: 113
投稿日時: 2007-04-15 16:37
引用:

未記入さんの書き込み (2007-04-14 23:01) より:
DisplayIndexの番号を指定して処理できればいいのですが
意外にないものですね。


DisplayIndex から DataGridViewColumn を取得できる機能は有っても良いかもしれませんね。
一般的に有る必要性が無いとか、ちょっと処理を組み込めば同等の機能が作成できるため、特に標準でサポートされていないのかもしれません。それでも表示上の先頭の列や指定した列の次の表示上の列を返すメソッドなどはあるんですよね。

それと、どういった場面で今回の内容が必要になったのでしょうか。差し支えなければ教えていただきたいと思います。
(入力チェックを表示上の先頭からやりたいとか?)
1

スキルアップ/キャリアアップ(JOB@IT)