2014-12-30 62 views
2

我想編寫一個簡單的「註冊/登錄」程序,僅供我玩,只是爲了好玩。C#通過長度更改txtBox BackColor

我想更改用戶鍵入其名稱的TxtBox的顏色。當txtBox.Length<4它應該將其背景更改爲紅色。

我不知道爲什麼我的代碼不起作用。當我將txtBox屬性中的文本牢固地更改爲5以上時,它在開始時是藍色的,但之後不會改變。

我的代碼:

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 

namespace _4Fun 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
      if (regTxtBoxName.TextLength<4) { 
       regTxtBoxName.BackColor = Color.Red; 
      } 
      else{ 
       regTxtBoxName.BackColor = Color.DarkBlue; 
      } 
     } 
    private void Form1_Load(object sender, EventArgs e) 
    { 

    } 

    private void regBtn_Click(object sender, EventArgs e) 
    { 
     if (regTxtBoxName.TextLength < 4) 
     { 
      txtBoxStatus.Text = "Choose a name with minimal length 5. "; // Urobit txtboxname a pass v registru červene pozadie ak x<4 
     } 
     else { 
      txtBoxStatus.Text = "Your account has been successfully created."; 
      string name = regTxtBoxName.Text; 

     } 
     if (regTxtBoxPass.TextLength < 4) 
     { 
      txtBoxStatus.Text = txtBoxStatus.Text + "Choose password with minimal length 5. "; 
     } 
     else { 
      txtBoxStatus.Text = "Your account has been successfully created."; 
      string pass = regTxtBoxPass.Text; 
     } 

    } 
} 
} 

回答

3

您的代碼設置顏色形式的構造函數,然後你不改變它。您需要在TextBox上註冊TextChanged事件,以在您的應用運行時根據您的Textbox中有多少個字符來更改顏色。

2

處理你的文本框中TextChanged事件,並將此碼在那裏,在構造函數中沒有

if (regTxtBoxName.TextLength<4) { 
    regTxtBoxName.BackColor = Color.Red; 
} 
else{ 
    regTxtBoxName.BackColor = Color.DarkBlue; 
} 
0

您可能希望將regBtn_Click方法更改爲regBtnTextChanged。通過這樣做,那麼文本框的顏色將在運行時改變。

因此,代碼是:

private void regBtnTextChanged(object sender, EventArgs e) 
    { 
     if (regTxtBoxName.TextLength<4) { 
      regTxtBoxName.BackColor = Color.Red; 
     } 
     else{ 
      regTxtBoxName.BackColor = Color.DarkBlue; 
     } 
    } 
1

您可以TextboxTextChanged事件做到這一點。 這裏是代碼

void textBox1_TextChanged(object sender, EventArgs e) 
{ 
    if (textBox1.TextLength<4) 
    { 
     textBox1.BackColor = Color.Red; 
    } 
    else 
    { 
    textBox1.BackColor = Color.DarkBlue; 
    } 
} 

當你在輸入文本框中的文本TextChanged事件將調用。檢查鏈接http://www.dotnetperls.com/textchanged