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