Блокировать, пока форма не закроется?Winforms - PullRequest
3 голосов
/ 11 июля 2010

У меня есть форма, которая запускает форму B. Я бы хотел, чтобы формат был скрыт, пока он не будет закрыт. Там может быть изменение Formb открывается FormC и другие, поэтому я просто не могу просто создать новую форму. Есть ли способ запустить форму B, скрыть и заблокировать до закрытия?

Ответы [ 2 ]

9 голосов
/ 11 июля 2010

Это должно сделать это.

this.Visible = false;
using (formB as new FormB())
    formB.ShowDialog(this);
this.Visible = true;
0 голосов
/ 11 июля 2010

Вы можете использовать событие OnActivate, чтобы скрыть владельца, и событие Dispose, чтобы показать владельца. Это решение работает, даже если form_b не вызывается из другой формы:

Код в форме_x:

FormB f = new FormB();
f.Show(this);

Код в форме_b

this.Activated += new System.EventHandler(this.HideOwner);
private void HideOwner(object sender, EventArgs e)
{
    if (this.Owner != null) this.Owner.Hide();
}

protected override void Dispose(bool disposing)
{
    if (this.Owner != null) this.Owner.Show();
    if (disposing && (components != null))
    {
        components.Dispose();
    }
    base.Dispose(disposing);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...