我正在寻找一种方法(告诉/检查)一个(错误/警告)MessageBox是否仍在另一个函数运行中打开。我要问的一个例子是:
Imports System.Windows.Forms
Class MainWindow
Dim t As Timer = New Timer
Public Sub load() Handles Me.Loaded
t.Interval = 60000
AddHandler t.Tick, AddressOf tick
t.Start()
End Sub
Public Sub tick()
' if message is not open
MessageBox.Show("Example Error Message", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error)
' end if
End Sub
End Class
当触发tick事件时,if语句检查窗口是否打开,如果不是则显示消息,如果是,则显示
答案 0 :(得分:3)
我会做这样的事情;
首先声明一个全局布尔变量 - 比如showError并将其初始化为True。
在此之后,我将声明一个全局MsgBoxResult变量。在这种情况下,我称之为x。然后我会使用这段代码。
Public Sub tick()
If showError = True then
showError = False
x = MessageBox.Show("Example Error Message", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error)
If x = MsgBoxResult.Ok Then
showError = True
End If
End If
End Sub
最后的if语句基本上检查MessageBox是否返回了结果。在用户单击“确定”之前,这将始终为false。现在因为MessageBox只有一个按钮(ok),这个if语句将始终返回True,将showError设置回True,从而再次显示MessageBox。