做MessageBox.Show(this,“Message”)vs MessageBox.Show(“Message”

本文关键字:Message MessageBox Show vs this | 更新日期: 2023-09-27 17:56:44

MessageBox.Show(this, "Message")MessageBox.Show("Message")有什么意义吗?

对话框不会默认为this所有者吗?

更新:我的用例是通常从 win 形式的方法调用它。

做MessageBox.Show(this,“Message”)vs MessageBox.Show(“Message”

MessageBox.Show(string text)的实现方式如下:

 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);
}

来自:参考来源 - Microsoft

因此,您的两个调用将执行相同的操作。因为this将是活动窗口。