Добавить что-то вроде ShowDialog в пользовательский элемент управления? - PullRequest
5 голосов
/ 23 июля 2010

Когда пользователь выбирает кнопку, пользовательский элемент управления добавляется в форму.Этот пользовательский элемент управления предоставляет возможность ввода некоторых значений.

Как мне дождаться завершения пользовательского элемента управления, прежде чем изменять значение в моей основной форме?

Я думал о чем-то вроде этого:

customControl ylc = new customControl();
ylc.Location = new Point(11, 381);
ylc.Parent = this;
ylc.BringToFront();

if(ylc.ShowDialog() == DialogResult.OK)
{
   this.lblSomeText.Text = ylc.PublicPropertyValue
}

UPDATE1

Пользовательский элемент управления не может быть добавлен в его собственную форму.В некоторых формах он «встроен», а в других он создается динамически по мере необходимости.

UPDATE2

Эта ссылка SO былаполезно.

Мое окончательное решение выглядит так (я скрываю пользовательский контроль, когда «завершено»):

customControl ylc = new customControl();
ylc.Location = new Point(11, 381);
ylc.Parent = this;
ylc.BringToFront();
ylc.VisibleChanged += new EventHandler(ylc_VisibleChanged);    
ylc.Show();

Затем этот код переходит в событие «Visiblechanged»:

if(ylc.ShowDialog() == DialogResult.OK)
{
   this.lblSomeText.Text = ylc.PublicPropertyValue
}

1 Ответ

6 голосов
/ 23 июля 2010

Пользовательский элемент управления на самом деле не завершен не так ли? Я думаю, что то, что вы пытаетесь сделать, может быть лучше, если вы поместите пользовательский элемент управления в его собственную форму и вызовете ShowDialog.

...