投稿者 のの  (社会人) 投稿日時 2020/9/8 15:36:17
魔界の仮面弁士様 
ご返信ありがとうございます。


>そういう方法を取ることもできますが、既に DataTable にデータを抽出済みであれば、
 そこから絞り込むという手も使えます。

すでにデーターはデーターソースからドラック&ドロップで
TableDataGridViewにはTableBindingSourceが割り当てられています。

>既に DataSet/DataTable に取得済みの内容のうち、一部の行だけを表示させたい場合には、
 BindingSource の Filter プロパティ あるいは DataView の RowFilter プロパティを使います。
BindingSourceはTableBindingSourceと一緒なのでしょうか?
なんかアイコンが一緒なので、、なまえが違うだけですか?

自分の割り当てはTableDataGridViewにTableBindingSourceという割り当てがされていて
品番という列に該当する値(テキストボックス入力)があった場合

    Private Sub Button3_Click_1(sender As Object, e As EventArgs) Handles Button3.Click
  Dim strText As String = TextBox1.Text
  TableBindingSource.Filter = strText

みたいな感じでいいのでしょうか?(ハンドルされてない例外が出てきました)


>Visual Studio のサーバーエクスプローラーからドラッグ & ドロップで
フォームにテーブルを貼った場合も、DataGridView と共に BindingSource が貼られますね。
とはいえ、現在 BindingSource を現在使っておらず、
DataSource に DataSet や DataTable を直接割り当てていたとしても、
必ずしも BindingSource を使わなければいけないわけではありません
ソート処理やフィルター処理のためには、DataTable の DefaultView プロパティが返す
DataView オブジェクトの Sort / RowFilter プロパティを使って同じことができるためです。

いろんなやり方があるのですね!
おもったより奥がふかいです。。

なお、DataGridView の DataSource を用いている場合には、
> Data = Me.DataGridView1(c.ColumnIndex, c.RowIndex).Value
のような、行番号・列番号に依存したコードを書くことはお奨めしません。

なるほど、、
はじめてDataGridViewをつかうので気を付けたいとおもいます
コード参考にさせていただきます。

よろしくおねがいします。