大家一定注意到这个问题: Windows Form的所有控件在Disabled的时候,文字的颜色是灰色的。(尤其是XP风格下不容易看清内容)
如下图所示:
重画以后的效果:
为了解决这个问题,通常的办法是在OnPaint里按照当前TextBox的属性,
重写文本的内容把灰色字体写成黑色(或者是当前设定的ForeColor)
重画的时候还要注意以下一些问题:
①要保持Design时设定的文本对应方式(Left,Center,Right)
②要保持密码设定的字符(PasswordChar有设定时)
③文本内容超过显示区域时,要保证能最大程度的显示文本内容
继承于System的TextBox, 重写OnPaint方法,重写OnEnableChanged()方法:
调用SetStyle方法,让控件自身在Disable下能够重画文本内容。
具体如代码:
分享到:
相关推荐
当Textbox的enable为false时,字体颜色默认为灰色,不是很好看。 所以写了这个自定义控件,禁用后颜色可以改为自己想要的!
基于easyui中的textbox输入框自定义的颜色选择器及源码
重绘textbox 并且避免了重绘前和重回后的字体集大小不同
VB读书器,可以增大字体,减小字体,控制对象为TextBox,只需点击对应的按钮,就可加大缩小TextBox中的字体,本例主要是学习FontSize方法的使用,如何在需要控制的文本框中应用此方法,编写字符或文字处理程序时候...
当TextBox的Enanbled为False时,颜色变灰。 通过重绘TextBox,使字体颜色变为任意颜色。
VB实现字体的单项选择,选择字体应用于Textbox文本框,窗体上设置三个按钮,单击相应的按钮可将文本框中的字体样式修改为选择的字体,点击三个按钮后,分别对应执行下列按钮动作: Private Sub Option1_Click() ...
开源(VB代码):实现TextBox不同文字颜色VB代码.zip
private bool validaing(TextBox textbox, int length, string controlName) { bool result = false; if (textbox.TextLength == 0) { errorProvider1.SetError(textbox, "请输入" + controlName + "内容!");...
边框颜色可以修改,字体水平居中属性里面有,可以通过TextBox.AutoSize=false和TextBox.Height改变TextBox高度,简单,继承直接套用。
在TextBox中获取光标的位置,并在光标位置插入字符,根据光标定位删除光标前的字符。顺便说一下,把字符串中的字母转换成大写的用.ToUpper(),转换成小写的用.ToLower();具体实例在我写的示例中,与大家分享一下。
最近在做Winform(C#)的项目,需要设置Textbox的背景颜色为透明,但是Textbox不支持透明的属性.在codeproject上找到了一个外国重写的类
TextBox 在 TextMode 属性设定成 MultiLine, MaxLength无效的解决方法 在Web.config中 將以下片段插入到 <system.web> / <pages> 下即可: <tagMapping> <add tagType="System.Web.UI.WebControls.TextBox" ...
winform里textBox无法获得焦点的解决方案
网页图片截取和自动改变字体大小Textbox
C#Winform的textbox不能输入汉字的解决方法大全
winform下输入文本框textbox重写实现透明,自带下划线输入框。
验证TextBox空间 扩展TextBox属性,给每个form的所有TextBox空间添加属性
VB文本垂直居中,主要是为了补TEXTBOX不能垂直居中的不足
教你如何把Winform TextBox 垂直居中的类文件 京华志&精华志出品 希望大家互相学习,互相进步 支持CSDN 支持微软
为Winform中的Textbox添加圆角和边框,圆角大小和边框大小可以设置