TextBoxWithPlaceHolder.cs 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. using System.Drawing;
  2. using System.Windows.Forms;
  3. namespace UAS_MES.CustomControl.TextBoxWithIcon
  4. {
  5. public partial class TextBoxWithPlaceHolder : EnterTextBox
  6. {
  7. //记录一个PlaceHolder,第一次对这个文本框赋的值
  8. string PlaceHolder1;
  9. public string PlaceHolder
  10. {
  11. get
  12. {
  13. return PlaceHolder1;
  14. }
  15. set
  16. {
  17. PlaceHolder1 = value;
  18. }
  19. }
  20. public TextBoxWithPlaceHolder()
  21. {
  22. InitializeComponent();
  23. this.GotFocus += TextBoxWithPlaceHolder_GetFocus;
  24. }
  25. private void TextBoxWithPlaceHolder_GetFocus(object sender, System.EventArgs e) {
  26. }
  27. private void TextBoxWithPlaceHolder_Leave(object sender, System.EventArgs e)
  28. {
  29. //失去焦点的时候如果文本框存在内容就把文字变色
  30. BackColor = Color.White;
  31. if (Text == "")
  32. {
  33. ForeColor = Color.Silver;
  34. Text = PlaceHolder1;
  35. }
  36. }
  37. private void TextBoxWithPlaceHolder_Enter(object sender, System.EventArgs e)
  38. {
  39. BackColor = Color.GreenYellow;
  40. ForeColor = Color.Black;
  41. //如果文本框的内容等与PlaceHolder就将文本框清空
  42. if (Text == PlaceHolder1)
  43. {
  44. Clear();
  45. }
  46. }
  47. private void textBox1_TextChanged(object sender, System.EventArgs e)
  48. {
  49. //由于PlaceHolder可能是在加载完窗体之后赋值,所以在TextChanged中再次判断
  50. if (PlaceHolder1 == "")
  51. {
  52. PlaceHolder1 = Text;
  53. }
  54. }
  55. }
  56. }