2015-12-05 5 views
0

«Можете ли вы научить меня, как отключить кнопку, пока все текстовое поле не пусто». в моей форме дизайна Именованный логин. У меня есть 2 текстовое поле и 2 кнопки Я хочу, чтобы отключить кнопки, пока все текстовое поле не является пустымКак отключить кнопку отправки, пока текстовое поле не будет пустым в C#?

Thnks за помощь мне так Heres мой код в C# Windows формы приложения

SqlConnection con = new SqlConnection(@"Data Source=ADMIN-\MSSQLSERVERR;Initial Catalog=Admin;Integrated Security=True"); 
    private void button1_Click(object sender, EventArgs e) 
    { 

     SqlDataAdapter sda = new SqlDataAdapter("Select USN From Admin where USN ='" + textBox1.Text + "'and Password ='" + textBox2.Text + "'", con); 
     DataTable dt = new DataTable(); 
     sda.Fill(dt); 


     if (dt.Rows.Count == 1) 
     { 
      this.Hide(); 
      Admin_Panel aa = new Admin_Panel(dt.Rows[0][0].ToString()); 
      aa.Show(); 
     } 

     else 
     { 
      MessageBox.Show("Please check your username and password"); 
      textBox1.SelectAll(); 
      textBox2.Text = ""; 
     } 
     button1.Enabled = !string.IsNullOrWhiteSpace(textBox1.Text); 
    } 

    private void button2_Click(object sender, EventArgs e) 
    { 
     SqlDataAdapter sda = new SqlDataAdapter("Select USN From Admin where USN ='" + textBox1.Text + "'and Password ='" + textBox2.Text + "'", con); 
     DataTable dt = new DataTable(); 
     sda.Fill(dt); 


     if (dt.Rows.Count == 1) 
     { 
      this.Hide(); 
      Student aa = new Student(dt.Rows[0][0].ToString()); 
      aa.Show(); 
     } 

     else 
     { 
      MessageBox.Show("Please check your username and password"); 
      textBox1.SelectAll(); 
      textBox2.Text = ""; 
     } 


     button2.Enabled = !string.IsNullOrWhiteSpace(textBox1.Text); 

    } 

    private void textBox1_KeyPress(object sender, KeyPressEventArgs e) 
    { 
     if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar)) 
      e.Handled = true; 
     base.OnKeyPress(e); 


    } 

я попробовать все я знаю, но он не работает :( я также попробовать этот button1.Enabled = string.IsNullOrWhiteSpace (TextBox1.Text)! но когда я уже поставил USN и пароль в текстовом поле на 2 кнопки не включена

+0

Вы хотите включить кнопки только в том случае, если в текстовое поле введено имя пользователя и пароль? –

+0

kinda, я хочу включить, когда два текстовых поля заполнены в моем коде button1.Enabled =! String.IsNullOrWhiteSpace (textBox1.Text); Если текстовое поле пуст, оно отключит кнопки , но когда я заполнил два текстовых поля, кнопки все еще отключены, я не знаю, как закодировать для включения, когда текстовое поле не пустое. @VijayKumbhoje –

+0

Я не знаю, как положить/использовать if else в моих кодах. –

ответ

2

Сначала установите ваш но Свойство ns.Enabled - false. Затем добавьте обработчик TextChanged для обоих текстовых полей, где вы проверите, есть ли в обоих текстовых блоках что-то.

код обработчиков может выглядеть следующим образом:

private void textBox1_TextChanged(object sender, EventArgs e) 
{ 
    setButtonVisibility(); 
} 

private void textBox2_TextChanged(object sender, EventArgs e) 
{ 
    setButtonVisibility(); 
} 

private void setButtonVisibility() 
{ 
    if ((textBox1.Text != String.Empty) && (textBox2.Text != String.Empty)) 
    { 
     button1.Enabled = true; 
     button2.Enabled = true; 
    } 
    else 
    { 
     button1.Enabled = false; 
     button2.Enabled = false; 
    } 
} 
+0

Я бы реорганизовал это как «textBox1_TextChanged», а «textBox2_TextChanged» имеет то же точное тело. Поощряйте хорошие практики для начинающих –

+0

Я не уверен, правильно ли я прав: как вы думаете, было бы лучше удалить код второго обработчика, потому что он такой же, как и код первого обработчика? :) – Tamwe

+0

как @B. Клей Шайтон сделал в своем ответе извлечение в один метод и назвал этот метод телом обработчиков событий. Я сделаю для вас изменение, чтобы показать вам –

1

Вы хотите отслеживать изменения в текстовые поля, в их измененном мероприятии, как:

private void textbox1_Change(object sender, EventArgs e) 
{ 
    ConditionallyEnableSubmitButton(); 
} 

private void textbox2_Change(object sender, EventArgs e) 
{ 
    ConditionallyEnableSubmitButton(); 
} 

private void ConditionallyEnableSubmitButton() 
{ 
    button1.Enabled = (!string.IsNullOrWhiteSpace(textBox1.Text) || 
         !string.IsNullOrWhiteSpace(textBox2.Text)); 
} 

Указание каких-либо дополнительных charge: дать какой-либо контроль, что вы собираетесь ссылаться программно на узнаваемое имя, например «btnSubmit», «txtbxUsername», «txtbxPwd» и т. д.

Вы можете сделать намного хуже, чем читать Стив McConnell's «Code Complete» для этого и многие другие подталкивают к хорошей практике.

0
private void textbox1_TextChanged(object sender, EventArgs e) 
{ 
    EnableButton(); 
} 

private void textbox2_TextChanged(object sender, EventArgs e) 
{ 
    EnableButton(); 
} 

private void EnableButton() 
{ 
    if(textbox1.Text == "" || textbox2.Text == "") 
    { 
     button1.Enabled = false; 
     button2.Enabled = false; 
    } 
    else 
    { 
     button1.Enabled = true; 
     button2.Enabled = true; 
    } 
}