我正在使用form.showdialog();从主gui表单在运行时打开一个表单。
我把类似形式的倾向设置在中间等。
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()时,我看不到标签的内容,现在这个新表单没有出现在中间。为什么这些集合属性没有出现?
谢谢
发布于 2013-02-25 10:21:59
您没有显示完整的代码,这在这种情况下是必要的。什么时候在哪里执行什么代码?
您需要记住的是,.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);如果将显示更改为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!发布于 2013-02-25 10:14:18
当使用Show()而不是ShowDialog()显示表单时,需要设置其MDI父级子属性。
尝试使用以下代码:
this.IsMdiContainer = true;
form.MdiParent = this;
form.Show();https://stackoverflow.com/questions/15064330
复制相似问题