2016-09-22 6 views
0

Я использую Visual Studio 2010 И сейчас я беспокоюсь о проблеме в моем проекте. этот вопрос может казаться глупостью. Но я не знаю, что происходит.Форма Не закрывается Полностью при использовании "this.Close()"

В моем проекте есть 3 формы.

  • Form1
  • Form2
  • DisplayFrm

Я пытался открыть форму (DisplayFrm) с использованием двух других форм (Form1 и Form2)

Это Код, который я использовал, чтобы открыть «DisplayFrm», используя «Form1» и «Form2»

 DisplayFrm.InitialLoadCustProf = RegCustIDtextBox.Text; 
     DisplayFrm frm = new DisplayFrm(); 
     frm.ShowDialog(); 
  • Я открыл "DisplayFrm" Использование From1
  • После выполнения некоторых операций Там я закрыт, что форма с помощью кнопку [X] в строке заголовка.
  • (Также я попробовал, давая this.Close(); в отдельной кнопки)

Проблема заключается в том, что, когда я открываю DisplayFrm agian использованием Form2, он не запускается как новая форма. он просто восстанавливает DisplayFrm, который у меня уже был закрыт с помощью операций, которые я уже сделал.

  • У меня нет этой проблемы с каким-либо другим проектом. Я думаю, что мой проект разбился .. он не показывает никаких ошибок.
  • есть ли способ использовать this.dispose(); с формой Закрытие события?. В настоящее время это не работает.
  • Почему моя форма не закрывается? , Почему он ведет себя, как я использовал this.hide(); и this.show();?
+4

Вы используете какие-то статические переменные внутри класса DisplayForm? Являются ли эти переменные (если они есть) связанными с поддержанием состояния работы в DisplayForm? И, наконец, вы создаете _new DisplayForm() _ внутри кода form2? – Steve

ответ

1

DisplayFrm.InitialLoadCustProf кажется статическим. Попробуйте изменить его на свойство экземпляра и открыть форму следующим образом:

using(DisplayFrm frm = new DisplayFrm()) 
{ 
    frm.InitialLoadCustProf = RegCustIDtextBox.Text; 
    frm.ShowDialog(this); 
}