まず、studentNo
が整数の場合は、Option Strictをオンにする必要があります。このコードはコンパイルされません:
studentNo = cboStudents.SelectedText
テキスト/文字列を整数に割り当てています。次に、SelectedText
はおそらくあなたが望むことをしません。 Intellisenseは、それがGets or sets the text that is selected in the editable portion of a ComboBox.
であることを私たちに伝えています。リスト内の選択項目ではありません。
生徒のバインドされたコンボボックスについては、DisplayMember
が名前で、ValueMember
がIDであるとすると、SelectedValue
が必要です。あなたはSelectedValueChanged
イベントでそれを得ることができます:SelectedValue
はObject
になり、あなたはそれを整数に割り当てたいので
' ToDo: check if selectedvalue is nothing to avoid NRE
studentNo = Convert.ToInt32(cbo.SelectedValue)
変換が必要です。必要に応じて他のフォームに渡すには、受け取る方法を作成します。
' on form 2
Public Sub DisplayStudentInfo(id As Int32)
' wonderful things
End Sub
次に情報を渡します。また
' push/pass/convey the desired ID to the other form:
frm2.DisplayStudentInfo(studentNo)
手段がそれを公開するとして、あなたは1つのフォームまたは他のプロパティを作成することができます。frm2
はForm2のインスタンスであると仮定。これは(あまりにも)パッシブになる可能性があります。Form1
を小道具として公開すると、他のフォームはそれがいつ変化するかを知る方法がありません。メソッド(Sub
)を使用すると、値が渡されたときにアクションを実行するコードを追加できます。
整数はバインドされていません。 DBからの値にバインドされたコントロールがありますが、varsではありません。あなたがそれに/データ*を渡すことができるように受信機のフォームにメソッドを作成してください – Plutonix
また、 'SelectedText'おそらくそれはあなたがそれを行うと思います。マウスを持っているときにポップアップするIntellisenseのヒントを読む – Plutonix
@Plutonixメソッドを作成することで何を提案していますか? – Donncha