【发布时间】:2015-08-18 02:32:36
【问题描述】:
我在 WinForm 中调用本机 Win32 API。
在我进一步解释之前,我应该解释一下我想要做什么。我正在调用 API 来检索一些数据,然后将其显示在 WinForm 上。但是,我正在尝试复制本机 Toast 通知(但请注意,此时这是一个桌面 exe)。
我可以通过 AnimateWindow 检索数据并将其显示在表单上。
但是我需要显示表单 5 秒。我使用过 Thread.Sleep(5000) 并且我知道这不是显示表单的正确方式。
我还需要在表单上有一个关闭按钮(没有可见的表单边框),只是 PictureBox 中的“X”png。所以我希望在 PictureBox 点击事件上我能够关闭表单。
但是,由于我使用了 Thread.Sleep(5000),我无法点击表单!即使我将鼠标悬停在表单上,光标也会切换到等待光标。
有什么方法可以完成关闭按钮吗?
如果需要,我会发布代码。
【问题讨论】:
-
使用计时器。 Win32中
SetTimer是API函数。 -
@JonathanPotter 会让我的表单响应,以便我可以点击“X”图像?
-
是的,您只需创建一个计时器,然后照常继续。当计时器响起时,您会收到一条消息。