我现在有一个问题。现在我有两种形式:登录和主。每个窗体都有自己的notifyIcon,其中包含显示和退出的contextmenu选项,并且一切正常,我遵循此link使其工作。至于登录,用户可以通过两种方式使用表单本身或远程登录(向连接到笔记本电脑或PC的gsm调制解调器发送命令)。主窗体有一个计时器,一旦计时器到期,应用程序将隐藏主窗体并显示登录窗体。我的目标是同步显示表单以实现下列功能:问题与ref变量C#
- 当用户使用表单登录时,它应该在成功登录时显示主表单。
- 如果用户最小化主窗体,并且计时器到期,则应用程序不应该向用户显示登录表单,而应该将登录表单隐藏在系统托盘中,并在用户从托盘中选择登录表单时显示它
- 如果应用程序没有最小化到托盘,那么它应该在会话超时时向用户显示登录表单。
我已经完成了功能1,2和3,它工作得很好。我使用名为minimiseToTrayStatus的ref布尔变量并相应地更改变量,并执行if else检查登录和主窗体以使功能正常工作。在minimiseToTrayStatus上完成的任何更改也会在其他类上正确反映。
现在,我想实现以下功能:
- 在接收到远程登录命令,如果登录命令是可见的,那么它应该表现的主要形式。
- 在收到远程登录命令后,如果登录命令隐藏在托盘中,那么它也应该隐藏托盘中的主窗体。
当我想实现上述功能1和2我遇到的问题是,一旦接收到远程命令我将试图改变裁判变量minimiseToTrayStatus appropiately得到的功能来完成。我无法获得该功能的工作和调试时,我意识到,一旦收到一个远程命令,当应用程序试图改变minimiseToTrayStatus。在登录和主窗体之间共享的ref变量显示不同的结果?就像一个显示为真,另一个显示为假。我对ref变量的理解是,无论变量在何处发生变化,它都应该在整个程序执行过程中显示一致的结果。我需要它显示相同的结果,这就是为什么我使用ref变量的原因。有人能告诉我为什么ref变量minimiseToTrayStatus显示不同的结果吗?
谁最终拥有这个变量?它是如何传递的?一些代码可能会有所帮助。 – dlev 2011-05-26 05:18:53