在消息框管理器上设置超时

本文关键字:设置 超时 管理器 消息 | 更新日期: 2023-09-27 18:35:10

有人可以给出一个在MessageBoxManager类中设置超时功能的清晰示例吗?

我看到了这些链接,但不明白如何正确使用它。我需要调用一个消息框询问某事,它将倒计时 3 秒以获得默认答案。http://www.codeproject.com/Articles/13123/MessageBoxManager-A-Windows-Forms-component-that-p

http://www.codeproject.com/Articles/18399/Localizing-System-MessageBox

我尝试使用这个:

MessageBoxManager.Yes = "Lab";
MessageBoxManager.No = "Machine";
MessageBoxManager.Register();
DialogResult dialogResult = MessageBox.Show("Choose your working method",
  "Choose your working method", MessageBoxButtons.YesNo);

但是没有任何方法可以选择超时功能...

在消息框管理器上设置超时

使用第一个链接中的 DLL 尝试以下操作。请注意,第一个链接中的库与第二个链接中的库完全不同。

MessageBoxManager manager = new MessageBoxManager();
manager.ShowTitleCountDown = true;
manager.AutoCloseResult = System.Windows.Forms.DialogResult.No;
manager.TimeOut = 5;
manager.AutoClose = true;
manager.HookEnabled = true;
DialogResult res = MessageBox.Show("Testing", "Hello", MessageBoxButtons.YesNo);
if (res == System.Windows.Forms.DialogResult.Yes)
{
    Console.WriteLine("yes pressed");
}
else
{
    Console.WriteLine("no presssd");
}

这应该对您有所帮助。

几秒钟后关闭消息框

或者,如果您确实要使用 MessageBoxManager,则可以设置以下属性:

int TimeOut :指定自动关闭、按钮禁用和标题倒计时功能使用的超时(以秒为单位)。

bool AutoClose :将其设置为 true 可在 TimeOut 属性指定的秒数过后自动关闭消息框。

DialogResult AutoCloseResult :设置 AutoClose 属性后,可以通过此属性指定一个DialogResult,调用代码(调用消息框)将看到该属性。