鉴于以下代码:
public static void main()
{
NotifyWindow.NotifyIcon.DoubleClick += new EventHandler(NotifyIconDoubleClick);
NotifyWindow.Show(500, "some text", "some title");
Thread.Sleep(10000);
}
private static void NotifyIconDoubleClick(Object sender, EventArgs e)
{
Clipboard.SetText("test");
}
(NotifyWindow是NotifyIcon)
的包装器我想让用户双击NotifyWindow,以便触发事件。遗憾的是,这并不适用于Thread.Sleep()方法,因为此时回调会被冻结。
有什么办法可以实现这个目标吗?
答案 0 :(得分:0)
您需要一个消息循环才能使事件处理正常工作。实现这一目标的一种方法是创建和展示"隐藏窗口,使用ShowDialog
或Application.Run()
。如果单击图标时应该发生的操作正在显示一个窗口,那么可能需要在开始时创建该窗口,但是"显示"它隐藏或最小化。