请原谅我问这个问题的愚蠢。我已经退休了,已经 20 多年没有接触过 SQL 或 Visual Studio。相信我,20 年前情况完全不同。我觉得无聊,决定学习 SQL、VS、VB .net 和 C#。
我创建了一个在不同表单上使用的部分用户类。该类有九个按钮,其中之一是退出。当我退出表单时,我想返回到调用表单。
我的问题是,一旦将类添加到表单中,我无法弄清楚如何处理我创建的类中各个按钮的单击事件。
所有按钮均声明为公共按钮。似乎没有事件来处理按钮的“点击”???或者无论如何识别点击了哪个按钮???
谢谢,
迈克
我想我可以捕获在这里单击的按钮,但我尝试过的一切都失败了。
Private Sub UserControl11_Click(sender As Object, e As EventArgs) Handles UserControl11.Click
'How to identify which button has been clicked
Dim oButton As DirectCast(sender, Text)
MsgBox(oButton.text)
End Sub
执行此操作的正确方法是让用户控件引发专用事件。在内部,用户控件处理
Click
的 Button
事件。然后它引发表单处理的自己的事件。表单不关心用户控件的 Click
事件. It cares about this event dedicated to the click of that specific
Button`:
Public Event ExitButtonClick As EventHandler
Protected Overridable Sub OnExitButtonClick(e As EventArgs)
RaiseEvent ExitButtonClick(Me, e)
End Sub
Private Sub ExitButton_Click(sender As Object, e As EventArgs) Handles ExitButton.Click
OnExitButtonClick(EventArgs.Empty)
End Sub
表单现在像处理任何其他事件一样处理
ExitButtonClick
。如果您愿意,您可以将该活动命名为其他名称。
有关定义您自己的事件的更多信息,请参阅我的博客文章此处。