【问题标题】:Visual Basic raising event on Windows Forms Dialog and handling on Main FormVisual Basic 在 Windows 窗体对话框上引发事件并在主窗体上进行处理
【发布时间】:2015-09-28 16:39:59
【问题描述】:

我有一个对话窗口(称为 Dialog1)和我的主窗体(称为 Form1)。

如何在 Windows 窗体中从 Form1 响应 Dialog1 上的事件?我是否应该将 Dialog1 设为另一种形式并使用 WithEvents 关键字对其进行实例化?

提前致谢!

【问题讨论】:

  • 有问题的“事件”是什么? Dialog1仍然打开时是否需要发生某些事情?...或者在它被用户关闭之后?

标签: .net vb.net winforms dialog


【解决方案1】:

您需要在您的Form1 中有此声明:

Private WithEvents dialog As Dialog1

然后在表单加载时设置它的引用(你不能有一个 分配引用的WithEvents 声明):

Private Sub UserForm_Initialize()
    Set dialog = New Dialog1
End Sub

现在您可以处理 Dialog1 类/表单公开的任何事件 - 包括您的自定义事件 - 只需从 IDE 代码窗格顶部的左侧下拉列表中选择 dialog,然后选择从右侧下拉列表中处理的事件。

或者只是手动输入处理程序:

Private Sub dialog_Activate()
    '"Activate" event handler for dialog
End Sub

Private sub dialog_QueryClose(Cancel As Integer, CloseMode As Integer)
    '"QueryClose" event handler for dialog
End Sub

另外,帮自己一个忙,命名。 “Dialog1”和“Form1”是很糟糕的名字。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多