2016-10-27 4 views
1

私はVBフォームプログラミングの初心者です。今日は仕事があり、それは私のためにとても難しいようです。基本的にForm1とForm2の2つのフォームがあります。 Form1は、学生のコード、名前、電話番号などの学生の管理情報を使用します。Form1にボタンがあり、それを押すとForm2が呼び出されます。私はそれを完了しました。自動VBで入力キーワードを使用してオブジェクトを検索および表示する

問題は次のとおりです。Form2では、1つのテキストボックスと1つのリストボックスしかありません。それはどうすればよいのでしょうか? => Form1の学生の情報に関連する1つのキーワードを含むテキストボックスに入力すると、リストボックスは入力したキーワードに関連するすべての生徒の名前を自動的に表示します。私はそれを自動的に行う考えは知らなかった。誰でも私を助けて、私に道を与えてください。ありがとうございます。

+0

[so]へようこそ。申し訳ありませんが、コード作成サービスは提供していません。あなたのコードを提供することができ、あなたが持っている問題があれば、我々は助けることができます。 – Prisoner

+0

どういう意味ですか?私は上記の私の問題を記述しています:) –

+0

あなたは学生のリストを格納するために使用するソリューションに基づいて、さまざまな可能な解決策があります。しかし、それらすべての場合、 'TextBox'の' TextChanged'イベントを使って、学生を含むメインリストのフィルタを設定することができます。生徒を格納するために 'DataTable'を使用する場合、' dt.DefaultView.RowFilter = string.Format( "{0} * '" Textのような名前) 'を設定することができます。また、学生を格納するために汎用リストを使用している場合は、linqを使用してそれを行うことができます。 –

答えて

1

生徒のリストを保存するために使用するソリューションに基づいて、さまざまな解決策が考えられます。しかし、それらのすべてのために、そのTextBoxTextChangedイベントを使用すると、学生を含むメインリストのフィルタを設定することができます。

あなたが学生を保存するためにDataTableを使用する場合は、あなたがDataTableDefaultView.RowFilterを使用することができます。また

dt.DefaultView.RowFilter = string.Format("Name Like '{0}*'", TextBox1.Text) 

あなたが学生を格納するための一般的なリストを使用している場合は、あなたがそうするようにLINQを使用することができます。

var data = list.Where(Function(s) s.Name.StartsWith(x.Name.StartsWith(TextBox1.Text)) _ 
       .ToList() 
listBox1.DataSource = New BindingList(Of Student)(data) 

また、フォーム間の対話が問題だった場合は、this postをご覧ください。

関連する問題