我在 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
在用户控件的加载方法中,我根据 ID 刷新用户控件中的组件。
Private Sub UserControl_Load(sender As Object, e As EventArgs) Handles MyBase.Load
UpdateUserControlFields() ' This Method uses ID within
End Sub
现在,每当我在添加此用户控件的表单中执行某些操作时,我希望此控件显示为正确的 ID。For example I have a DataGridView and whenever selection changes I want to update the user control:
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 相同的数据。任何帮助将不胜感激。