2014-05-13 77 views
-3

我想創建一個簡單的登錄屏幕,其中有2個文本框和1個按鈕。當我在第一個文本框(用戶名)中插入字符串,第二個文本框(密碼)匹配我之前定義的字符串時,Enabled屬性應該變爲True,並且在單擊時應該打開另一個表單,這裏是代碼i已經寫到目前爲止:用戶名和密碼的簡單登錄屏幕

public partial class LogInScreen : Form 
{ 
    public LogInScreen() 
    { 
     InitializeComponent(); 
     string lietotajvards = "user"; 
     string parole = "user"; 
     if (textBox1.Text == lietotajvards && textBox2.Text == parole) 
     { 
      button1.Enabled = true; 
     } 
     else 
     { 
      button1.Enabled = true; 
     } 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     Form1 f1 = new Form1(); 
     this.Hide(); 
     f1.Show(); 
    } 
} 

事情是,與我的代碼它不會按預期工作,並且按鈕始終處於啓用狀態。問題在哪裏?

+1

更改爲button1.Enabled = FALSE;在其他情況下 – Janaki

回答

2

您的代碼將只執行一次,當表單被初始化,你必須使用textchanged事件對textbox1textbox2,然後你可以使用你寫的代碼,以檢查是否需要啓用按鈕。在其他的你必須disable按鈕。

文本改變事件處理程序:

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

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

啓用/禁用按鈕:

private void handleLoginButton(){ 
     string lietotajvards = "user"; 
     string parole = "user"; 

     if (textBox1.Text == lietotajvards && textBox2.Text == parole) 
     { 
      button1.Enabled = true; 
     } 
     else 
     { 
      button1.Enabled = false; 
     } 
} 
1

構造函數只爲表單運行一次,您需要處理輸入控件的文本更改事件,然後再次重新評估您的條件。

此外,它應該不言而喻(雖然這是在這裏說),這是一個可怕的方式來處理登錄到應用程序。

相關問題