winform自定义控件TextBox 如何获取背景色?

stiff_neck 2013-06-10 05:45:00
画面上有很多自定义textbox,并且在属性中设置了不同背景色
想要实现的效果:
enable=false时 背景色变灰
enable=true时 恢复设定背景色

public TextBoxCom()
{
InitializeComponent();
defaultColor = this.BackColor;
}

protected override void OnEnabledChanged(EventArgs e)
{
if (this.Enabled)
{
this.BackColor = defaultColor;
this.SetStyle(ControlStyles.UserPaint, false);
this.Font = new System.Drawing.Font(Font.FontFamily, Font.Size, Font.Style, Font.Unit);
}
else
{
this.BackColor = SystemColors.Control;
this.SetStyle(ControlStyles.UserPaint, true);
}
base.OnEnabledChanged(e);
}

如上获取的defaultColor为系统默认白色
求教怎么才能取到属性中设定的背景色。。X X
...全文
334 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
stiff_neck 2013-06-12
  • 打赏
  • 举报
回复
可能是我表达的问题,虽然都没说到重点,还是谢谢了,结贴。
「已注销」 2013-06-11
  • 打赏
  • 举报
回复
定义一个Color 获取 TextBox 控件的背景颜色 的 三原色

Color c = this.textBox1.BackColor;
MessageBox.Show("(" + c.R.ToString() + "," + c.G.ToString() + "," + c.B.ToString() + ")");
stiff_neck 2013-06-11
  • 打赏
  • 举报
回复
顶一下,求助求助
stiff_neck 2013-06-10
  • 打赏
  • 举报
回复
引用 1 楼 lizhi3186575 的回复:
你直接创建一个自定义控件然后使用它的背景色属性来获取背景色就可以的,和内置控件获取背景色的方法是一样的了
你的意思是在画面里获取背景色么,控件太多,那样太麻烦了 我现在用的是自定义控件,我想在自定义控件中通过重写enablechanged事件,实现这个功能,这样画面上使用时直接设定背景色属性,其他就不用管了 代码如上,但是不知道怎么在自定义控件中获得背景色,defaultbackcolor属性获得的是control灰色
人生导师 2013-06-10
  • 打赏
  • 举报
回复
你直接创建一个自定义控件然后使用它的背景色属性来获取背景色就可以的,和内置控件获取背景色的方法是一样的了

110,570

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧