首页 > 代码库 > C# TextBox带提示说明的搜索输入框
C# TextBox带提示说明的搜索输入框
场景: 对于输入框,如果用户不知道要输入什么,这个时候有个提示是最好了,下面是带提示说明的搜搜输入框,如图
C# Code
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows.Forms; using System.Drawing; namespace EMR { public class SerachBox:TextBox { public string _HintString = "请输入住院号或姓名查询病历信息"; public SerachBox() { this.Margin = new Padding(0,0,0,0); this._SerachButton.Text = "搜索"; this._SerachButton.TextAlign = ContentAlignment.MiddleCenter; this._SerachButton.ForeColor = Color.Black; this._SerachButton.Margin = new Padding(0, 0, 0, 0); _SerachButton.BackColor = Color.Green; this.Text = _HintString; this.ForeColor = Color.Gray; _SerachButton.Size = new Size(60, this.Height); this.Controls.Add(_SerachButton); _SerachButton.Dock = DockStyle.Right; _SerachButton.Location = new Point(this.Width - 50, 0); _SerachButton.MouseHover += new EventHandler(ButtonHand); _SerachButton.MouseClick += new MouseEventHandler(ButtonClick); } private EventHandler serachHandler; public event EventHandler SerachEvent { add { serachHandler += value; } remove { serachHandler = value; } } public void ButtonClick(object sender, EventArgs e) { if(serachHandler !=null) { serachHandler.Invoke(this,null); this.Select(this.Text.Length,0);//光标移动到末尾 } } public void ButtonHand(object sender, EventArgs e) { this._SerachButton.Cursor = System.Windows.Forms.Cursors.Hand; } public void SetFontColor(bool bo) { if (bo) { this.ForeColor = Color.Gray; this._SerachButton.ForeColor = Color.Black; } else { this.ForeColor = Color.Black; this._SerachButton.ForeColor = Color.Black; } } private Label _SerachButton = new Label(); protected override void onm ouseDown(MouseEventArgs e) { base.OnMouseDown(e); //请输入住院号或姓名查询病历信息 if (this.Text == _HintString) { this.Clear(); this.SetFontColor(false); } } protected override void onm ouseLeave(EventArgs e) { base.OnMouseLeave(e); if (this.Focused && this.Text == "") { this.Text = _HintString; this.SetFontColor(true); } if (this.Text == _HintString) { this.SetFontColor(true);//显示灰色 } else { this.SetFontColor(false);//显示黑色 } } protected override void OnKeyPress(KeyPressEventArgs e) { base.OnKeyPress(e); e.Handled = true; if (this.Text == _HintString) { this.Text = ""; } if(e.KeyChar.ToString() == "\r") { if (serachHandler != null) { serachHandler.Invoke(this, null); this.Select(this.Text.Length, 0);//光标移动到末尾 } } this.SetFontColor(false);//显示黑色 e.Handled = false; } protected override void onm ouseHover(EventArgs e) { base.OnMouseHover(e); if (this.Focused && this.Text == _HintString) { this.Text = ""; this.SetFontColor(false);//显示黑色 } } } }
C# TextBox带提示说明的搜索输入框
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。