【问题标题】:Creating a Notify Icon Form创建通知图标表单
【发布时间】: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's click 事件处理程序中获取鼠标位置,然后将窗口定位在那里。

标签: c# winforms notifyicon notification-area


【解决方案1】:

你可以使用:

  1. Screen.PrimaryScreen
  2. Screen.WorkingArea

System.Drawing.Rectangle workingRectangle = Screen.PrimaryScreen.WorkingArea;
this.Left = workingRectangle.Width - this.Width;
this.Top = workingRectangle.Height - this.Height;
this.Show();

只要点击通知图标,就需要调用以上代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-23
    • 1970-01-01
    • 2018-03-19
    • 1970-01-01
    相关资源
    最近更新 更多