Visual Basic フォーム アプリケーションでユーザー コントロールを作成しました。IDと呼ばれるプロパティを持っています
Private intID As Integer
Public Property ID() As Integer
Get
Return intID
End Get
Set(value As Integer)
intID = value
End Set
End Property
また、ユーザー コントロールの Load メソッドでは、ID に基づいてユーザー コントロールのコンポーネントを更新しています。
Private Sub UserControl_Load(sender As Object, e As EventArgs) Handles MyBase.Load
UpdateUserControlFields() ' This Method uses ID within
End Sub
このユーザー コントロールを追加したフォームで何かを行うたびに、このコントロールが正しい ID で表示されるようにします。たとえば、DataGridView があり、選択が変更されるたびにユーザー コントロールを更新する必要があります。
Private Sub MyDataGridView_SelectionChanged(sender As Object, e As EventArgs) Handles MyDataGridView.SelectionChanged
If Not IsNothing(MyBindingSource.Current) Then
UserControlONE.ID = MyBindingSource.Current("someID")
UserControlONE.Refresh() ' Doesn't Work.
UserControlONE.Update() ' Doesn't Work.
End If
End Sub
問題は、ユーザー コントロールが選択した ID で正しく読み込まれるのは初回のみで、そのデータを再読み込みできないようです。つまり、プロパティ ID の値が変更された場合、ユーザー コントロールの再読み込みを強制する方法がわかりません。最初に読み込まれた ID と同じデータが表示されます。どんな助けでも大歓迎です。