2016-12-06 2 views
0

Я пытаюсь использовать окно сообщений в winforms C#. У меня есть дочерняя форма, которую я использую как модальную форму. Моя форма детей выглядят следующим образом:MessageBox.Show не работает в модальной дочерней форме

popup newpopup = new popup(prt.myIP); 
newpopup.StartPosition = FormStartPosition.Manual; 
newpopup.Location = new Point(Loc.X + 30, 60); 
popup.ShowDialog(); 

MessageBox.show отлично работает в родительской форме, но код зависает, когда я пытаюсь использовать его в моей форме ребенка (в popup.cs).

MessageBox.Show("Text", "Error", MessageBoxButtons.OK); 
+2

Пожалуйста, напишите больше кода, показывающего больше контекста. – Dai

+2

Вы пытались указать параметр 'IWin32Window owner'? –

+0

Прошло некоторое время с тех пор, как я сделал winforms, но я думаю, вы будете использовать [эту перегрузку] (https://msdn.microsoft.com/en-us/library/ba2a6d06 (v = vs.110) .aspx) и передать ' this' как первый параметр – stuartd

ответ

3

Я только что проверил его с формой, которая открывает дочернюю форму, например.

popup newpopup = new popup(); 
newpopup.ShowDialog(); 

Messagebox.show работал нормально, то, что я видел в вашем вопросе были эти 2 строки:

popup newpopup = new popup(prt.myIP); 
popup.ShowDialog(); 

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

popup newpopup = new popup(prt.myIP); 
newpopup.ShowDialog(); 
+0

Спасибо, что указал. Я исправил эту ошибку, но все равно никаких изменений. – Abin

+1

Если он все еще не работает, это означает, что проблема не в коде, который вы указали. Если вы используете мою версию всплывающего окна (верхний пример), он должен работать (Mine не проходит prt.myIP) – EpicKip