У меня есть три формы в моем приложении.Скрыть пользовательскую форму ввода
Форма1 является основной формой. Form2 - это форма с двумя полями ввода. Form3 - это форма проверки пароля, которая запускается из Form1 и после успешной аутентификации отображается Form2.
Form1 -> Форма Form3 -> Form2
private void button1_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(this.textBox_entry_password.Text))
{
MessageBox.Show("Please enter a password", "Error", MessageBoxButtons.OK,
MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
this.textBox_entry_password.Focus();
}
else
{
// Authentication not Implemented so far
Form Form2 = new Form2();
Form2.StartPosition = FormStartPosition.CenterScreen;
// Code for hiding Form3 -- Needed ????
Form2.ShowDialog();
}
Я хочу Form1, чтобы остаться как таковой и скрыть form3 и показать Form2.
this.hide()
скрывает форму1.
Если я попробовать
Form Form3 = new Form3();
Form3.Hide();
Он ничего не делает. Form3 остается там.
Как скрыть форму3?
В своем коде вы на самом деле не * показать * экземпляр 'Form3'. Вы создаете новый экземпляр и сразу же пытаетесь скрыть его. Там, где вы создаете экземпляр «Form3», который отображается, это тот экземпляр, который вам нужно скрыть. – David
Эта кнопка1_Click() вызывается из Form3. Я уже на Form3. Форма 1 также видна. Я хочу только скрыть существующий экземпляр Form3 и показать Form2, пока Form1 останется там. –
В Form1 вы скрываете Form1, а затем запустите Form2. В Form2 вы скрываете Form2 и начинаете Form3. В Form3 вы скрываете Form3 и т. Д. Форма входа -> На самом деле в вашем случае будет достаточно основной формы. Вы должны рассмотреть возможность именования своих форм для удобства чтения. – Measuring