PDA使用SOCKET环境,是用事件函数返回服务器的消息,我的LOGIN FORM有一个事件函数:
ggg.clientSocket.OnServerMsg += new xxhSocket.EventHandler(ServerMsgPush); //服务器返回消息事件
在 MAIN FORM里,也有一个事件函数:
Logon.ggg.clientSocket.OnServerMsg += new xxhSocket.EventHandler(ServerMsg); //服务器返回消息事件
遇到一个奇观的事情,从LOGIN向MAIN切换的时候,LOGIN的事件函数居然不起作用,我的心跳功能可是挂在这里面的哇!
最后一查资料,才发现:如果要保留原FORM的消息事件应该在新窗口用show。
在C#中窗口的显示有两种方式:模态显示(showdialog)和非模态显示(show)。
二者最常见的区别是:
模态显示后,
弹出窗口阻止调用窗口的所有消息响应。
只有在弹出窗口结束后调用窗口才能继续。
在模态窗口“关闭”后,可以读取模态窗口中信息,包括窗口的返回状态,窗口子控件的值。
本文探讨了C#中模态显示与非模态显示的区别,特别是在事件函数处理上的不同表现。作者通过解决一个具体问题——从登录界面切换到主界面时事件函数失效的情况——揭示了如何正确使用Show和ShowDialog方法来避免事件丢失。
2304

被折叠的 条评论
为什么被折叠?



