日期:2014-05-18  浏览次数:20971 次

关于c#winform控件重写的几个简单问题
1、怎么设置并隐藏被重写控件的某个属性,比如label中我设置text为"你好",然后我希望在它属性里没有Text这一项。
2、怎么知道我重写某个控件时改重写什么东西?a、比如我重写FontDialog,我希望修改字体、字形、大小中的内容,比如去掉黑体、宋体啦、加上新字形啦什么的;b、比如调整FontDialog中实例的显示内容,比如用户选择了黑体,我实例中显示幼圆。。。。。。但怎么知道我改重写谁呢?

------解决方案--------------------
你的问题可以这样解决。
(1)不要直接继承这个控件,而是新建一个自定义控件作为容器,把那个控件放上去。再逐一添加需要的属性,比如:
class MyControl : Control
{
public Color ForeColor
{
get { return label1.ForeColor; }
set { label1.ForeColor = value; }
}
...
}
(2)没办法知道,看源代码。
------解决方案--------------------
1.可见度不可以越来越小
2.这样的需求要么自己重新一个新的控件,要么在简单继承的代码里自行处理
否则你只能够查询api了,而.net控件有的设置是并没有暴露出来,
只就是说你不可以这样做
------解决方案--------------------
探讨
1、怎么设置并隐藏被重写控件的某个属性,比如label中我设置text为"你好",然后我希望在它属性里没有Text这一项。
2、怎么知道我重写某个控件时改重写什么东西?a、比如我重写FontDialog,我希望修改字体、字形、大小中的内容,比如去掉黑体、宋体啦、加上新字形啦什么的;b、比如调整FontDialog中实例的显示内容,比如用户选择了黑体,我实例中显示幼圆。。。。。。但怎么知道我改重写……