1
我的问题有点复杂:调用窗体并冻结
我有Socket服务器,我有两种形式。一个是服务器的主要形式,另一个是定制的消息框。当请求到达服务器时,主表单必须调用第二个表单(messagebox)。当主窗体首次打开时,一切正常。但是,当我关闭的主要形式,但不关闭应用程序,然后再次打开它,并请求进入到服务器的定制消息框打开,但它冻结,看起来像这样:
的代码调用:
Private Delegate Sub DInvoke(ByRef Frm As Form, ByVal Text As String, ByVal Title As String, ByVal Socket As Integer, ByVal DataX As String, ByVal ReqForProfil As Boolean)
Public Sub ShowMessage(ByRef Frm As Form, ByVal Text As String, ByVal Title As String, ByVal Socket As Integer, ByVal DataX As String, ByVal ReqForProfil As Boolean)
If Frm.InvokeRequired Then
Dim DT As New DInvoke(AddressOf ShowMessage)
Frm.Invoke(DT, New Object() {Frm, Text, Title, Socket, DataX, ReqForProfil})
Else
Messegar = New MessageFrm(Text, Title, Socket, DataX, ReqForProfil, True, 30)
Messegar.Show()
End If
End Sub
任何帮助,将不胜感激!
感谢Hans Passant的帮助。 Application.OpenForms解决了我的冻结问题。 – 2012-04-14 15:51:08