【问题标题】:How do i add a click event on an icon in the taskbar?如何在任务栏中的图标上添加点击事件?
【发布时间】:2013-10-01 00:56:25
【问题描述】:

我的 Form1 显示在底部的任务栏中。 我希望当我点击图标时它会做一些事情。不是最大化表单,而是做其他事情。

我有一个 form1 点击事件:

private void Form1_Click_1(object sender, EventArgs e)
        {
            notifyIcon1.Visible = true;
            notifyIcon1.ShowBalloonTip(30000);
        }

但这只有当我在表单最大化时单击表单时才有效。 我希望它只有在我单击任务栏中的图标时才能工作。不是右下角的托盘图标,而是底部的任务栏。

编辑**

当它在任务栏中时,我没有找到表单图标的任何点击事件,到目前为止我所做的是使用 form1 resi8ze 事件并做了:

private void Form1_Resize(object sender, EventArgs e)
        {
            if (WindowState == FormWindowState.Normal)
            {
                this.WindowState = FormWindowState.Minimized;
                notifyIcon1.Visible = true;
                notifyIcon1.ShowBalloonTip(30000);

            }
        }    

我也在 Form1 Load 事件中做过:

this.WindowState = FormWindowState.Minimized;

所以现在的结果是,当我运行程序时,表单图标一直在任务栏中,表单永远不会最大化调整大小或打开。当我单击任务栏中的图标时,气球提示运行良好。

现在的问题是:

  1. 当您将鼠标移到图标上时,以某种方式移除表单的窗口。
  2. 锁定/禁用/避免用户多次单击图标。用户单击图标后,等待 5 分钟,然后再次启用它。

【问题讨论】:

  • 看起来像 P/Invoke 的一些有趣的工作......祝你好运!
  • 需要有关所需行为的更多详细信息,逐步进行
  • 亚历克斯。 1. 表单不会显示在屏幕上,也不会显示在任务栏上的托盘图标上,仅作为图标显示在任务栏上。 2.当点击任务栏中的图标时,它会做一些不打开/调整大小/最大化表单的事情,只会做一些事情,比如激活一个计时器。 3.将鼠标指针移动到任务栏中的图标上时,它不会像现在那样在小窗口中显示表单,而是会像气球一样在其上方显示一个小文本。 4.当点击图标时,当它正在做一些事情比如激活一个计时器时,它也会禁用图标,所以用户将无法在 5 分钟内再次点击它。
  • Alex 我刚刚更新了我的问题,包括我目前所做的以及我需要做的更多。
  • Alex 试试 windows 自带的 Paint 程序。当您安装它时,您会在底部的任务栏上看到它的图标。当您将鼠标光标移到它上面时,您会看到小文本说 Paint。当您单击图标时,它正在运行一个事件并运行程序 Paint.exe 现在尝试运行一些空的 c# 应用程序,您将在任务栏上看到它的图标。如果您将鼠标光标移到它上面,它将显示窗体的小窗口,如预览窗口。如果你点击它,它会将表单打开到屏幕的中心。

标签: c# winforms


【解决方案1】:

我认为您需要熟悉WindowsAPICodePackTaskbar API。我从未完全满足您的需求,但这些 API 非常强大,可能会派上用场。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-10
    • 1970-01-01
    • 2011-11-17
    • 2019-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多