- - PR -
VB.NET DataGrid内の検索について
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2003-03-13 16:15
TOGさん、ありがとうございます。
TOGさんの返信を見る前に自分なりの方法でやってみた結果、思い通りの動作になったので報告します。 TOGさんのやり方もこのあとに試してみようと思います。 まず、DataGridの抽出部分である DataView1.RowFilter = "Num='" & TID & "'" の部分なんですが、わざわざ抽出しなくても別の方法でデータを取得することを思いつきました。 このデータの取得方法では、一度取得したデータを抽出して空のインデックスに投げ込むことで、そのインデックスの「0」行にあたるものをテキストボックスに代入。といった処理だったのですが、そうしてしまうとDataViewの中には抽出した行しかないわけで・・・。当然、検索しても抽出した行以外は無いものと判断されます。 (このあたりのことに気づくのが遅かったみたいです^^;) で、対処法としては 抽出部分を省き、取得するインデックスの値を0でなくて、その前に取得できている列の値にすることでうまくいきました。 =============================================================================== Select Case hti.Type Case System.Windows.Forms.DataGrid.HitTestType.Cell TID = myGrid.Item(hti.Row, 0) myGrid.Select(hti.Row) Case System.Windows.Forms.DataGrid.HitTestType.RowHeader TID = myGrid.Item(hti.Row, 0) End Select If Not TID = "-1" Then TextBox1.Text = DataView1(hti.Row)("Num") End If =============================================================================== この結果、DataViewにはDataGridをクリックしたあとも問題なくデータが残るために以前のような処理にはなりませんでした。 RowFilterの抽出の意味がはっきり理解できていないがために招いた失敗例でした。 べーちゃんさん、TOGさん、お世話になりました。 TOGさんの方法の結果は後ほどお伝えします。 |
|
投稿日時: 2003-03-13 18:38
>TOGさんの方法の結果は後ほどお伝えします。
思いつきなのであまり気にしないでくださいね〜 上手く動くようになれば無事解決です。 |
|
投稿日時: 2003-03-13 19:36
遅くなりましたがTOGさんの教えてくださった結果でも同じような動きができました。
2つの違いを自分なりに検証してみました。 自分のやり方は抽出を使わずにやる。というやり方に対し、TOGさんのやりかたはあくまで抽出にこだわったやり方(で合ってるのかな・・・)ということでしょうか。 TOGさんの場合は空白を抽出することで、一度リセット状態に戻してる。ってことなんですかね? 何はともあれ、勉強になりました。 ありがとうございました。 |
