失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 修改 font的文本信息_C#窗体 文本框如何实现类似html的输入提示信息

修改 font的文本信息_C#窗体 文本框如何实现类似html的输入提示信息

时间:2018-12-08 17:42:09

相关推荐

修改 font的文本信息_C#窗体 文本框如何实现类似html的输入提示信息

文章开始之前,先看下效果图:

那么这个是如何实现的,Winform自带的TextBox是不具备这种PlaceHolder提示功能的,要实现它,我们就需要重写TextBox控件。

具体代码如下:

using System;using System.Collections.Generic;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace RevitDevelopment.CustomControls{ ////// 带有PlaceHolder的Textbox ////// marc public class PlaceHolderTextBox : TextBox { private bool _isPlaceHolder = true; private string _placeHolderText; /// /// 提示文本 /// public string PlaceHolderText { get { return _placeHolderText; } set {_placeHolderText = value;SetPlaceholder(); } } /// /// 文本 /// public new string Text { get {return _isPlaceHolder ? string.Empty : base.Text; } set {base.Text = value; } } /// /// 构造函数 /// public PlaceHolderTextBox() { GotFocus += RemovePlaceHolder; LostFocus += SetPlaceholder; } /// /// 当焦点失去的时候,将清空提示文本 /// private void SetPlaceholder() { if (string.IsNullOrEmpty(base.Text)) {base.Text = PlaceHolderText;this.ForeColor = Color.Gray;this.Font = new Font(this.Font, FontStyle.Italic);_isPlaceHolder = true; } } /// /// 当焦点获得的时候,将显示提示文本 /// private void RemovePlaceHolder() { if (_isPlaceHolder) {base.Text = "";this.ForeColor = SystemColors.WindowText;this.Font = new Font(this.Font, FontStyle.Regular);_isPlaceHolder = false; } } /// /// 失去焦点 /// /// /// private void SetPlaceholder(object sender, EventArgs e) { SetPlaceholder(); } /// /// 获得焦点 /// /// /// private void RemovePlaceHolder(object sender, EventArgs e) { RemovePlaceHolder(); } }}

代码是简单明了的,它提供了属性PlaceHolderText,用于填写提示信息,当焦点获得或者失去时,将触发事件。

将该代码,写好后编译,将会在“工具箱”中出现这个组件:

将该组件拖入您想要使用的地方,然后设置如下属性:

如此,便可以实现开篇的效果图。

祝您用餐愉快。

如果觉得《修改 font的文本信息_C#窗体 文本框如何实现类似html的输入提示信息》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。