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(“消息”)
vs
MessageBox.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,在我的情况下,这不是问题,根据我的经验,你应该总是调用每个对话框和每个传递正确所有者的消息框,而不是依赖默认值。如果你不这样做,你迟早会遇到或多或少微妙的窗口顺序问题。