在MessageBoxManager上设置TimeOut

时间:2014-12-23 14:21:59

标签: c# messagebox

有人能给出在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);

但是没有办法选择超时功能...

2 个答案:

答案 0 :(得分:3)

在第一个链接中使用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");
}

答案 1 :(得分:1)

这应该对你有帮助。

Close a MessageBox after several seconds

或者如果你真的想使用MessageBoxManager,你可以设置以下属性:

int TimeOut:指定自动关闭,按钮禁用和标题倒计时功能使用的超时秒数。

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

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