using System.Drawing; using System.Windows.Forms; namespace UAS_MES.CustomControl.TextBoxWithIcon { public partial class TextBoxWithPlaceHolder : EnterTextBox { //记录一个PlaceHolder,第一次对这个文本框赋的值 string PlaceHolder1; public string PlaceHolder { get { return PlaceHolder1; } set { PlaceHolder1 = value; } } public TextBoxWithPlaceHolder() { InitializeComponent(); this.GotFocus += TextBoxWithPlaceHolder_GetFocus; } private void TextBoxWithPlaceHolder_GetFocus(object sender, System.EventArgs e) { } private void TextBoxWithPlaceHolder_Leave(object sender, System.EventArgs e) { //失去焦点的时候如果文本框存在内容就把文字变色 BackColor = Color.White; if (Text == "") { ForeColor = Color.Silver; Text = PlaceHolder1; } } private void TextBoxWithPlaceHolder_Enter(object sender, System.EventArgs e) { BackColor = Color.GreenYellow; ForeColor = Color.Black; //如果文本框的内容等与PlaceHolder就将文本框清空 if (Text == PlaceHolder1) { Clear(); } } private void textBox1_TextChanged(object sender, System.EventArgs e) { //由于PlaceHolder可能是在加载完窗体之后赋值,所以在TextChanged中再次判断 if (PlaceHolder1 == "") { PlaceHolder1 = Text; } } } }