C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

datagridviewの検索機能追加

[トピック内 10 記事 (1 - 10 表示)]  << 0 >>

■90559 / inTopicNo.1)  datagridviewの検索機能追加
  
□投稿者/ ど素人 (1回)-(2019/03/21(Thu) 11:05:23)

分類:[.NET 全般] 

現在、VB.NETでBMIの計算アプリを作っており、名前、体重、身長、BMIをDataGridViewに表示させる機能をつけました。
そこで検索機能をつけたいと考えたのですが、以下のコードでテキストボックスに名前を入力し、検索ボタンを押すことで検索することは出来たのですが、体重や身長、BMIからも検索できるようにしたいと考えています。どのようにコードを追加すればよいか教えていただきたいです。


Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
DataGridView1.ClearSelection()
Dim hasData As Boolean = False
Dim resultIndex As Int32 = 0
For i As Integer = 0 To DataGridView1.RowCount - 1
Dim inputString1 As String = DataGridView1.Rows(i).Cells("name").Value
Dim strText As String = TextBox2.Text
If strText = inputString1 Then
hasData = True
resultIndex = i
End If


Next
If hasData = True Then
DataGridView1.Rows(resultIndex).Selected = True
Else
MessageBox.Show("候補なし")
End If
End Sub
引用返信 編集キー/
■90560 / inTopicNo.2)  Re[1]: datagridviewの検索機能追加
□投稿者/ 魔界の仮面弁士 (2119回)-(2019/03/21(Thu) 11:30:50)
2019/03/21(Thu) 11:53:20 編集(投稿者)

No90559 (ど素人 さん) に返信
> 名前、体重、身長、BMIをDataGridViewに表示させる機能をつけました。
DataGridView の各セルに直接値を入力していく方式は、パフォーマンスの面で望ましくないので、
List(Of ) あるいは DataTable を DataSource に割り当てる方式(データバインド)をおすすめします。



> 体重や身長、BMIからも検索できるようにしたいと考えています。
"name" 以外の列について、同じような処理を組み込めば良いかと。



> Dim resultIndex As Int32 = 0
> For i As Integer = 0 To DataGridView1.RowCount - 1
As Int32 と As Integer の表記が混在しているようです。
同じ意味のはずですが、意図的に使い分けているのでしょうか?


> Dim inputString1 As String = DataGridView1.Rows(i).Cells("name").Value
この場合、『DataGridView1("name", i).Value』とも書けますね。

なおデータバインドしている場合は、個々のセル値を読み取るのではなく、
バインド元のデータを読み取る方が望ましいです。


>  Dim strText As String = TextBox2.Text
>  If strText = inputString1 Then
>   hasData = True
>   resultIndex = i
>  End If
> Next
TextBox2.Text の内容はループ中で変化しないので、
Dim strText As String への代入は For の直前に移動した方が良いでしょう。

また、hasData が True になった時点で、それ以上走査する必要が無いのなら
Exit For を呼び出してループを脱出した方が良さそうです。

ところで、TextBox2 に合致する行が複数あった場合はどうしますか?

最初の行を選択するのか、最後の行を選択するのか、
それとも合致する行すべてを選択するのか、
あるいは複数該当したことをメッセージで知らせるのか。
引用返信 編集キー/
■90561 / inTopicNo.3)  Re[1]: datagridviewの検索機能追加
□投稿者/ WebSurfer (1793回)-(2019/03/21(Thu) 12:05:25)
No90559 (ど素人 さん) に返信
> 現在、VB.NETでBMIの計算アプリを作っており、名前、体重、身長、BMIをDataGridViewに表示させる機能をつけました。

質問者さんは http://bbs.wankuma.com/index.cgi?mode=al2&namber=90548 のスレッドを立てた「たいへ」さん
と同一人物では、先のスレッドの前の Teratail のスレッドの記述、

> 現在BMIの計算アプリを作っていまして、その計算結果などをdatagridviewに表示させ、

を見てそう思ったのですが。そうであれば、この掲示板の「利用方法/規約」にある以下のことを守っていただけ
ればと思います。

"一貫して同じハンドルを使用し、場を混乱させないようにしましょう。同じハンドルの方が質問の背景がわかり
やすいです (自作自演をしたり別人を装うのは回答者の善意を裏切る行為です)。"

違う場合は失礼しました。
引用返信 編集キー/
■90562 / inTopicNo.4)  Re[1]: datagridviewの検索機能追加
□投稿者/ WebSurfer (1794回)-(2019/03/21(Thu) 12:27:12)
No90559 (ど素人 さん) に返信

勘違いですみません。

http://bbs.wankuma.com/index.cgi?mode=al2&namber=90548 のスレッドとも、それを立てた「たいへ」さん
とも関係なかったようです。

でも、Teratail の以下のスレッドとは関係あると思うのですが、いかがですか?

VB.NET ローカルファイルからCSVを読み込んでDataGridViewに表示させたい
https://teratail.com/questions/180073
引用返信 編集キー/
■90563 / inTopicNo.5)  Re[2]: datagridviewの検索機能追加
□投稿者/ 魔界の仮面弁士 (2120回)-(2019/03/21(Thu) 13:51:49)
No90560 (魔界の仮面弁士) に追記
>>名前、体重、身長、BMIをDataGridViewに表示させる機能をつけました。
> DataGridView の各セルに直接値を入力していく方式は、パフォーマンスの面で望ましくないので、
> List(Of ) あるいは DataTable を DataSource に割り当てる方式(データバインド)をおすすめします。

DataTable に読み込んで、それを DataGridView に表示する VB のサンプル。
CSV ファイルの内容を DataTable 化しているようです。
http://rucio.cloudapp.net/ThreadDetail.aspx?ThreadId=30392


今回作成中のプログラムでは CSV ファイルは使わないのかもしれませんが、参考情報ということで。
引用返信 編集キー/
■90565 / inTopicNo.6)  Re[2]: datagridviewの検索機能追加
□投稿者/ ど素人 (2回)-(2019/03/21(Thu) 23:43:58)
No90562 (WebSurfer さん) に返信

> でも、Teratail の以下のスレッドとは関係あると思うのですが、いかがですか?
はい。csvファイルの読み込みの点で分からないことがあったのでteratailで質問していました。

引用返信 編集キー/
■90566 / inTopicNo.7)  Re[3]: datagridviewの検索機能追加
□投稿者/ ど素人 (3回)-(2019/03/21(Thu) 23:46:47)
No90560 (魔界の仮面弁士 さん) に返信
ご回答ありがとうございました。"name" 以外の列についても同じように処理をしたらいけました。

引用返信 編集キー/
■90567 / inTopicNo.8)  Re[4]: datagridviewの検索機能追加
□投稿者/ ど素人 (4回)-(2019/03/21(Thu) 23:47:22)
No90566 (ど素人 さん) に返信
> ■No90560 (魔界の仮面弁士 さん) に返信
> ご回答ありがとうございました。"name" 以外の列についても同じように処理をしたらいけました。
>
解決済み
引用返信 編集キー/
■90568 / inTopicNo.9)  Re[3]: datagridviewの検索機能追加
□投稿者/ WebSurfer (1795回)-(2019/03/22(Fri) 00:29:52)
No90565 (ど素人 さん) に返信

> はい。csvファイルの読み込みの点で分からないことがあったのでteratailで質問していました。

そういうのはマルチポストというのはご存知ですか? マルチポストが何かわからなけれれば
それをキーワードにググってください。
解決済み
引用返信 編集キー/
■90569 / inTopicNo.10)  Re[4]: datagridviewの検索機能追加
□投稿者/ ど素人 (6回)-(2019/03/22(Fri) 01:05:39)
https://teratail.com/questions/180073
時間がなかったため、こちらのサイトでも同時並行で同じアプリの質問をしていました。
解決済み
引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ