ShowDialog () не делает окно модальным - PullRequest
6 голосов
/ 29 мая 2009

У меня есть форма окна, которая открывает диалоговое окно, если определенные условия выполняются при загрузке формы. Проблема в том, что окно не остается сверху, и я все еще могу нажать на родительскую вещь. Однако в форме есть кнопка, которая при нажатии открывает то же самое окно, когда я делаю это, она работает как положено (как диалоговое окно).

Есть ли проблема с отображением диалогового окна при первой загрузке формы?

Ответы [ 4 ]

2 голосов
/ 29 мая 2009

Вы вызываете ShowDialog из класса Form? Потому что оно будет устанавливать родительское окно только в том случае, если оно вызывается из другой формы. В качестве альтернативы вы можете использовать перегрузку с параметром IWin32Window , чтобы специально установить владельца.

0 голосов
/ 31 мая 2009

DaBomb,

Чтобы сделать то, что вы хотите, вам придется вызывать ваш модальный диалог из конструктора вашей главной формы, а НЕ из события Form_Load.

Примерно так:

    public Form1()
    {
        InitializeComponent();
        this.Show();
        Form2 popupForm = new Form2();
        popupForm.ShowDialog();
    }
0 голосов
/ 31 мая 2009

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

0 голосов
/ 29 мая 2009

Вы можете объяснить проблему дальше, так как это мой код, который не показывает саму форму, пока диалог не будет закрыт, либо вы установили родительский элемент, либо нет

  private void Form1_Load(object sender, EventArgs e)
        {
            //your functionality goes here    
            AboutBox1 box = new AboutBox1();
            box.ShowDialog();
        }
    }

на другой стороне вы также можете проверить с помощью свойства TopMost

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...