2014-12-30 5 views
-2

У меня две формы в моем приложении. Когда пользователь открывает приложение, появляется . Форма входа появляется там, где пользователь вводит регистрационную информацию, а после ввода правильной информации форма регистрации должна исчезнуть, и должна появиться основная форма . Логика я использую, чтобы показать главную форму:Почему скрытие формы входа закрывается Mainform неожиданно?

if (this.userNameFld.Equals(this.userName) && this.pwdFld.Equals(this.pwd)) 
{ 
    MainForm domain = new MainForm(); 
    domain.Show(); 
    this.Hide(); 
} 

ПРОБЛЕМА Проблемы я столкнулся в том, что, как форме Войти исчезает, вдруг Основная форма появляется и получает исчезла сразу. И по какой причине это происходит, я не знаю. Пожалуйста, помогите мне найти его. Кроме того, у меня нет формы FormClosing в моей форме входа. Так что может быть ошибкой?

+1

Глядя на этот код, похоже, не проблема. Есть ли что-либо, что следует в форме входа, которая закрывает форму для входа? Есть ли что-либо в загрузке MainForm, которая может закрыть его? Используйте ShowDialog, если в LoginForm есть что-то, что может закрыть его. – danish

+0

Позвольте мне проверить, а затем я вернусь к сэру и расскажу вам об этом. – Sameer

+0

Этот код верный, есть ли какой-либо другой код, который вызывает закрытие MainForm ?? вы должны показать больше кода – user4340666

ответ

0
this.Hide(); 

, возможно, что закрытие - удалить this.Hide(); и повторите попытку

+0

Pardon Sir, но я не считаю, что у вас достаточно знакомства с синтаксисом языка или семантикой. – Sameer

+0

LOL ... хорошо ... вы попробовали мое предложение? – Kreeverp

0

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

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

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

Form frmMain = new frmMain(); 

Тогда внутри frmMain, инстанцирует форме Войти

+0

Почему голос? –

+0

Потому что нет необходимости делать это. Проверьте мой ответ. Это просто, чтобы показать, как это можно сделать. Это может или не может ответить на вопрос. – danish

-1

Этот код просто показать логин и последующее использование формы (читай комментарий к реакции scott_f в). Не совсем ответ на реальный вопрос.

 // Assuming correct login 


     // This will close the main form 
     //MainForm mainForm = new MainForm(); 
     //mainForm.Show(); 
     //Hide(); 

     // After some more code 

     //Close(); 

     // this will not close the main form as control execution will not move ahead until Main form is closed 
     MainForm mainForm = new MainForm(); 
     Hide(); 
     mainForm.ShowDialog(); 
     Close(); 
0
this.Hide(); 
StuRec_frm domain = new StuRec_frm(); 
domain.ShowDialog(); 

Это решило мою проблему. Всем спасибо.

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