我在运行时使用form.showdialog();
我设置类似的形象应该出现在中心等
form.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
form.ClientSize = new System.Drawing.Size(200, 50);
form.StartPosition = FormStartPosition.CenterParent;
并添加了标签
Label popupLabel1 = new Label();
form.Controls.Add(popupLabel1);
当我用form.show()替换form.showdialog()时,问题我看不到标签的内容,现在这个新表单没有出现在中心。为什么没有出现这些设置属性?
Thanls
答案 0 :(得分:1)
您没有显示完整的代码,这是必要的。何时何地执行代码?
你需要记住的是.Show()不是阻塞调用,而.ShowDialog()是阻塞调用。这意味着如果在 .Show / ShowDialog调用之后有代码,则在使用ShowDialog时不会立即执行 - 它将在表单关闭时执行。
假设你有这样的代码:
var form = new YourForm();
form.Show(); // NOT BLOCKING!
form.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
form.ClientSize = new System.Drawing.Size(200, 50);
form.StartPosition = FormStartPosition.CenterParent;
Label popupLabel1 = new Label();
form.Controls.Add(popupLabel1);
如果您将Show更改为ShowDialog,则需要在创建标签后将其移至最后。
var form = new YourForm();
form.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
form.ClientSize = new System.Drawing.Size(200, 50);
form.StartPosition = FormStartPosition.CenterParent;
Label popupLabel1 = new Label();
form.Controls.Add(popupLabel1);
form.ShowDialog(); // BLOCKING!
答案 1 :(得分:0)
使用Show()而不是ShowDialog()显示表单时,需要设置其MDI父子属性。
尝试以下代码:
this.IsMdiContainer = true;
form.MdiParent = this;
form.Show();