C# MessageBox.Show(这个“Message”与MessageBox.Show(“Message”)有什么区别吗
做C# MessageBox.Show(这个“Message”与MessageBox.Show(“Message”)有什么区别吗,c#,winforms,C#,Winforms,做MessageBox.Show(“消息”)vsMessageBox.Show(“消息”)有什么意义吗 对话框是否默认为所有者身份的此 更新:我的用例是通常从win表单中的方法调用它 MessageBox.Show(字符串文本)的实现方式如下: public static DialogResult Show(string text) { return ShowCore(null, text, String.Empty, MessageBoxButtons.OK, Mes
MessageBox.Show(“消息”)
vsMessageBox.Show(“消息”)
有什么意义吗
对话框是否默认为所有者身份的此
更新:我的用例是通常从win表单中的方法调用它 MessageBox.Show(字符串文本)
的实现方式如下:
public static DialogResult Show(string text) {
return ShowCore(null, text, String.Empty, MessageBoxButtons.OK, MessageBoxIcon.None, MessageBoxDefaultButton.Button1, 0, false);
}
在ShowCore
中有一个类似以下的检查:
if (owner == null) {
handle = UnsafeNativeMethods.GetActiveWindow();
}
else {
handle = Control.GetSafeHandle(owner);
}
发件人:
所以你的两个电话都会做同样的事情。因为这将是ActiveWindow的 文档中有:您可以使用owner参数指定一个特定的对象,该对象实现了IWin32Window接口,将用作对话框的顶级窗口和所有者。消息框是一个模态对话框,这意味着除了模态窗体上的对象外,不能进行任何输入(键盘或鼠标单击)。程序必须隐藏或关闭一个模式窗体(通常是响应某些用户操作),然后才能输入到另一个窗体。@Tinwor:他想知道这两个语句之间是否有任何差异。“因为这将是活动窗口。”你确定吗?例如,计时器可能以非模态形式运行,没有焦点(即不是活动窗口)。如果计时器的勾号处理程序调用MessageBox.Show
,那么GetActiveWindow
是否会将句柄返回到活动窗口而不是非模态窗体的窗口?@JimMischel,我认为OP是从同一个表单调用的,这就是为什么我说this
或没有this
都指向同一个表单。@JimMischel,在我的情况下,这不是问题,根据我的经验,你应该总是调用每个对话框和每个传递正确所有者的消息框,而不是依赖默认值。如果你不这样做,你迟早会遇到或多或少微妙的窗口顺序问题。