C#重载控件,修改父类属性的问题? 10

小弟刚学C#遇到一个问题,我继承了一个控件,自BUTTON的,可是怎么才可以改变父类默认的背景颜色呢,我在构造函数里面设置了:publicmybutton(){Initi... 小弟刚学C# 遇到一个问题,我继承了一个控件,自BUTTON 的,可是怎么才可以改变父类默认的背景颜色呢,我在构造函数里面设置了:
public mybutton()
{
InitializeComponent();
base.BackColor = System.Drawing.Color.Red;
}

当把这个子控件拉到窗口上时,颜色只是闪一下就恢复到父类的默认颜色去了.非的需要重载WndProc 截获消息的方法来处理啊? 自定义控件的初始化,不是在构造函数里面设置吗?
之前以为重载 BACKCOLOR 属性可以,结果也不行.
base.TEXT 和 base.COLOR 都是这样,希望高手指点一下!!
谢谢大家的回复,你们试试吧,好像是VS2008的BUG 呵呵!!!

只有继承BUTTON 类出现这个问题 ,,,"Windows 窗体设计器生成的代码"中,VS2008始终会出现

this.mybutton1.UseVisualStyleBackColor = true; 始终是TRUE 哪怕在继承的控件中设置成FALSE 设计器一样会变成把它变成TRUE

也就是始终不能关闭按钮的"按视觉样式重绘控件". VS2010 没有这个问题,但是我还是想解决它.不知有人愿意试试吗?
展开
 我来答
fjdyp520
2010-04-27 · 超过11用户采纳过TA的回答
知道答主
回答量:59
采纳率:0%
帮助的人:31.9万
展开全部
是不是BUG我不知道,但是你上面的写法肯定是错误的
Button是在Form中的是不是?虽然你是在
public mybutton()
{
InitializeComponent();
base.BackColor = System.Drawing.Color.Red;
}
将mybutton的背景颜色改了,但是你有没有想过,初始化窗体的时候,mybutton的属性是由谁主导的呢?是mybutton的FindForm(父容器,这里就是Form),所以你在它的父容器还没有初始化的时候改了它的颜色是没有用的,在她的父窗体初始化后,mybutton的颜色就会变成和父容器一样的了,是不是?所以你要是想改它的颜色,必须是在它的父容器初始化后才行!希望我的回答你能满意!
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
不懂就必须问
2010-04-15 · 超过40用户采纳过TA的回答
知道小有建树答主
回答量:303
采纳率:0%
帮助的人:179万
展开全部
通过继承类是修改不了父类的属性的.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mirrowin
2010-04-18 · 超过29用户采纳过TA的回答
知道答主
回答量:67
采纳率:0%
帮助的人:91.4万
展开全部
不要写在构造方法里面,应该重写BackColor属性。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
pppop3
2010-04-15 · TA获得超过316个赞
知道小有建树答主
回答量:488
采纳率:0%
帮助的人:359万
展开全部
研究一下 子类和父类的 构造函数调用关系
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小样放开那女娃
2010-04-15
知道答主
回答量:14
采纳率:0%
帮助的人:0
展开全部
通过继承类是修改不了父类的属性的.

但是你可以用重写的方法写!具体怎么写我就不帮你写了!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式