2014-11-12 6 views
0

У меня есть 2 формы. Я открываю form2 с ShowDialog(), но тогда, когда я закрываю его (скрывая его), форма 1 исчезает в течение нескольких секунд, но если я использую show для открытия формы 2, то этого не произойдет.Form1 закрывается после ShowDialog для формы2

Мне нужно использовать ShowDialog(), как я могу исправить исчезновение формы 1 после закрытия формы 2?

Я попытался использовать Form1.Show() сразу после закрытия формы 2 с помощью Hide(), но не работает.

Form1

private void p0_igra2_Click(object sender, EventArgs e) 
    { 
     this.CenterToScreen(); 
     imevislice.ShowDialog(); 
    } 

Form2

private void button1_Click(object sender, EventArgs e) 
    { 
     if (textBox1.Text == "") 
      errorProvider1.SetError(textBox1, "Polje more biti izpolnjeno"); 
     else 
     { 
      errorProvider1.Clear(); 
      ime = textBox1.Text; 
      if (radioButton1.Checked) 
       izbrane_besede = "SLO"; 
      else 
       izbrane_besede = "ENG"; 
      this.Hide(); 
      form1.Show(); 
      form1.namehangman(); 
     } 
    } 
+1

Можете ли вы показать полный код? Такое поведение звучит не так. – BradleyDotNET

+0

Написал код, надеюсь, вас не беспокоит, что все не на английском – Miko

+0

Это не похоже на то, что вы фактически закрываете 'Form2' ... – BradleyDotNET

ответ

0

Если открыть форму с ShowDialog вам нужно близко (Form.Close), когда вы сделали. ShowDialog запускает модальный диалог; что означает, что вызывающая функция не будет продолжать выполнение до тех пор, пока форма не будет закрыта.

Использование Show может исправить это, но вы не сказали, что не работает с этим подходом.

В общем, ShowDialog довольно дешево; вы должны иметь возможность просто закрыть форму правильно, и вы не столкнетесь с какими-либо проблемами.

+0

Показать работает отлично, но я хочу использовать ShowDialog, поэтому form1 получает «деактивирован». И я заменил шкуру, и форма 1 все еще исчезает. Возможно, я смогу получить такую ​​же деактивацию, если я использую Show? Включение включенного значения false не совсем то же самое. – Miko

+0

@Miko Что вы подразумеваете под "Deactivation"? 'ShowDialog' никогда не должен исчезать. – BradleyDotNET

+0

Не исчезнуть, я имею в виду, что когда form2 открывается, вы не можете щелкнуть что-либо в форме1 до тех пор, пока форма 2 не будет открыта, и вы не сможете свести к минимуму форму2. Например, если вы открываете Visual Studio, а затем TOOLS-> Options =, то результат я хочу получить – Miko

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