如何在任务栏中的图标上添加点击事件?

时间:2013-09-28 00:09:32

标签: c# winforms

我的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分钟并再次启用它。

1 个答案:

答案 0 :(得分:0)

我认为您需要熟悉WindowsAPICodePackTaskbar API。我从来没有完全按照你的需要做,但那些是非常强大的API,可能会派上用场。