我在按代码创建表单实例时遇到了这样的问题 这是一个简单的例子:
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#代码也很好。
答案 0 :(得分:3)
尝试使用SendMessage Windows API方法
SendMessage(iHandle, WM_SYSCOMMAND, SC_CLOSE, 0);
答案 1 :(得分:2)
通过使用Control.FromHandle()
然后将其转换为表单,有一种.NET方法可以做到这一点:
DirectCast(Control.FromHandle(h), Form).Close()