DOBON.NETプログラミング道掲示板

■34465 / 1階層)  DataGridViewの行番号
□投稿者/ 魔界の仮面弁士 大御所(1280回)-(2020/05/13(Wed) 10:14:29)
  • アイコンNo34464に返信(社畜からの開放さんの記事)
    > id namae busho
    > 100 田中太郎 営業部
    > 101 鈴木次郎 人事部
    > というmdbファイルがあるとしてmdb⇒DataGridViewの反映は毎回うまくいきます。
    >
    > その状態で
    > Debug.Print (DataGridView(1,0).Value)を行うと"田中太郎"が表示されることを想定しておりますが、
    > うまくいく場合もあれば営業部が表示される場合もあります。


    う〜ん……。DataGridView のインデクサは、
      DataGridView1(列名, 行番号)
    もしくは
      DataGridView1(列番号, 行番号)
    のいずれかですよね。
    DataGridView1(1, 0).Value であるならば、
    columnIndex := 1 なので、常に namae 列の "田中太郎" が得られるはず…?

    たとえば 4 列構成の 1 列目が非表示になっているような場合、
    columnIndex := 2 を指定した時に、namae 列が得られてしまうことはありますが、
    columnIndex := 1 が指定されているのに、busho の列が得られるケースは思い当たらないです。


    強いて言えば、DataGridView の AllowUserToOrderColumns が True にしておいて、
    id, busho, namae 順でバインドしておいてから、表示される列順をドラッグで
    入れ替えれば、columnIndex := 1 で busho の列が得られるケースが、一応ありえます。

    DataGridview1.Columns(何某).Index が「本来の列番号」
    DataGridview1.Columns(何某).DisplayIndex が「表示順の列番号」

    でも、列順を入れ替えたり、DisplayIndex の変更なんて行っていませんよね…。



    >(フォームを開きなおす(コンパイルする?)たびに行番号が変わっている感じです。

    質問内容をもう一度確認しておきたいのですが:

    【行番号】が変化したのなら、「田中太郎」→「鈴木次郎」になるはずではないでしょうか。
    「田中太郎」→「営業部」に変化したのなら、【列番号】の変化だと思うのですが…。


    既定の設定では、DataGridView の列ヘッダーをクリックすると、データがソートされますので、
    表示されている順番と、データソースの行順は必ずしも合致しません。

    でも、今回問題視しているのは、DataGridView のインデクサの話なのですよね。


    > 一般的にどのように行番号と対応させるのでしょうか。
    列番号ならさておき、行番号を使うことはそもそも稀です。


    行列挙なら For Each を使いますし、データソースにバインドしているなら、
    DataGridView 上の入力値を直接扱うのではなく、データソースの値を
    直接読み取れば済むからです。

    ちなみに DataGridViewRow から BoundItem プロパティにアクセスすれば、
    DataRowView オブジェクトの Row プロパティから、バインド元の DataRow オブジェクトを得られます。

    Dim viewRow = DirectCast(DataGridView1.Rows(0).BoundItem, DataRowView)
    Dim row As DataRow = viewRow.Row
違反を報告
削除キー/

前の記事(元になった記事) 次の記事(この記事の返信)
←DataGridViewの行番号 /社畜からの開放 →Re[2]: DataGridViewの行番号 /社畜からの開放
 
上記関連ツリー

Nomalアイコン DataGridViewの行番号 / 社畜からの開放 (20/05/13(Wed) 00:30) #34464
Nomalアイコン DataGridViewの行番号 / 魔界の仮面弁士 (20/05/13(Wed) 10:14) #34465 ←Now
  └Nomalアイコン Re[2]: DataGridViewの行番号 / 社畜からの開放 (20/05/13(Wed) 16:32) #34466
    └Nomalアイコン Re[3]: DataGridViewの行番号 / 魔界の仮面弁士 (20/05/13(Wed) 16:54) #34467
      └Nomalアイコン Re[4]: DataGridViewの行番号 / 社畜からの開放 (20/05/14(Thu) 23:12) #34468
        └Nomalアイコン Re[5]: DataGridViewの行番号 / 魔界の仮面弁士 (20/05/15(Fri) 11:05) #34469
          └Nomalアイコン Re[6]: DataGridViewの行番号 / 社畜からの開放 (20/05/18(Mon) 21:54) #34470
            └Nomalアイコン Re[7]: DataGridViewの行番号 / Azulean (20/05/18(Mon) 22:20) #34471

All 上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信

Mode/  Pass/


- Child Tree -