Vb.Net关闭Winforms Form的句柄

时间:2017-06-27 19:09:10

标签: c# vb.net

我在按代码创建表单实例时遇到了这样的问题 这是一个简单的例子:

Dim h As IntPtr

Some Sub...
    Dim f As New frm_myform
    h = f.Handle
    AddHandler f.closed_ok, AddressOf myform_closed_ok
    AddHandler f.closed_cancel, AddressOf myform_closed_cancel
    f.Show() OR f.Show(Me)
End Sub


Private Sub myform_closed_ok()
    'How to close instance of myform from here by using its handle (h)?
End Sub

我想通过使用其句柄来关闭表单(表单的特定实例) 这在.NET中是否可行?如何?

C#代码也很好。

2 个答案:

答案 0 :(得分:3)

尝试使用SendMessage Windows API方法

SendMessage(iHandle, WM_SYSCOMMAND, SC_CLOSE, 0);

答案 1 :(得分:2)

通过使用Control.FromHandle()然后将其转换为表单,有一种.NET方法可以做到这一点:

DirectCast(Control.FromHandle(h), Form).Close()