【发布时间】:2013-04-16 17:47:29
【问题描述】:
我是 C# 的新手,但我坚持使用它并开始了我的第一个适当的程序。该程序由一个Notify Icon组成,存在于Notification区域中,当点击它时,表单会显示一小段时间。
到目前为止,我有它,所以程序启动(不显示表单(这是一个 FixedSingle,所以它只显示为灰色框),但创建了图标),并注册了 MouseClick 事件,但是这就是我陷入困境的地方。我正在尝试获取它,以便在单击图标时,该框将出现在通知区域上方/旁边(直到发生模糊事件或来自表单上的对象的事件),但在谷歌搜索后半部分一个小时左右,我还没有找到解决方案,可能是因为我不知道正确的单词。
那么,有谁知道需要发送什么命令才能使表单瞬间出现在正确的坐标中(相对于通知区域)?
附加
我已将static void Main() 修改为以下内容:
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
new frmMain();
Application.Run();
所以new frmMain() 作为它自己的实体存在,而不是作为Application.Run() 的参数存在
编辑
Righto,刚刚发现我可以用this.Show() 显示表单并显示表单,而相反this.Hide() 将隐藏它。但我仍然无法确定通知区域的坐标,以及如何计算表单的新坐标以使其旁边/上方显示。
【问题讨论】:
-
这里的答案有帮助吗? stackoverflow.com/questions/3644315/…(请注意 Hans Passant 的回复)
-
我在这个确切的时刻就在那个确切的问题上,我正在玩设置,但表格总是出现在屏幕的右下角。那么有没有办法检测任务栏的位置,以便我可以添加一个修饰符来选择将其分配到哪个角落?
-
找到任务栏的位置并不简单,但这里有一个帖子 (winsharp93.wordpress.com/2009/06/29/…)。未经测试,但您可以改为在
NotifyIcon'sclick 事件处理程序中获取鼠标位置,然后将窗口定位在那里。
标签: c# winforms notifyicon notification-area