2013-02-25 2 views
0

Я открытие формы во время выполнения из основной формы графического интерфейса с использованием form.showdialog();замена шоу() с ShowDialog()

Я установил proppeties likeform должен появиться в центре и т.д.

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() с form.show() Я не могу видеть содержимое этикетки и теперь это пе Форма w не появляется в центре. Почему эти заданные свойства не происходят?

Thanls

+0

изменения 'form.Show()' 'к form.Show (это)' 'для этого form.StartPosition = FormStartPosition.CenterParent;' работать для задачи этикеток, из этой части коды есть нет способа сказать, что происходит не так. – gzaxx

ответ

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

Если вы измените Показать на 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! 
0

При отображении формы с помощью Show() и не ShowDialog(), вам необходимо установить его MDI родитель ребенка свойства.

попробовать следующий код:

this.IsMdiContainer = true; 
form.MdiParent = this; 
form.Show(); 
+0

ОП не упоминает MDI вообще. – Maarten

Смежные вопросы