【发布时间】:2011-08-24 06:32:03
【问题描述】:
我在一个可以生成多个非模态子窗体的窗体上有一个用户控件。子窗体显示用户可以编辑的数据。用户控件显示相同数据的不同视图,如果用户在一个或多个子窗体中进行了更改,我希望能够重新加载数据。我已经设置了事件来通知用户控件子表单中的数据更改,但我无法确定我应该在用户控件上捕获哪个事件(如果它存在)以确定它已经从子表格。我可以在这里使用现有的活动吗?
编辑:代码示例 (对不起,我的客户喜欢 VB)
GotFocus 似乎仅在释放 UserControl 时触发。
我将控件添加到“主”表单上的面板中,如下所示:
Dim mainControl as New MainUserControl()
Panel1.Controls.Add(mainControl)
mainControl.Doc = DocStyle.Fill
mainControl.Visible = True
mainControl.Show()
然后,事件处理代码:
Private Sub MainUserControl_GotFocus(ByVal sender as Object, ByVal e as EventArgs) Handles Me.GotFocus
MessageBox.Show("got focus")
End Sub
然后,用户控件上有一个“关闭”按钮,该按钮将事件触发回主窗体,然后从面板中删除用户控件并将其释放。只有当mainControl.Dispose() 被调用时,GotFocus 才会触发。
编辑 2
我刚刚尝试处理 Enter 事件,但这只会在第一次触发,而不是每次控件获得焦点时触发。
【问题讨论】:
标签: winforms events user-controls focus