这一点会对你将来构建控件有所影响,因此为了让你有更全面的了解我将从另一个角度对它进行讲述。如果你通过覆盖一个OnPaint 来支持你自己的作品(就是说用于一个标准的Button基类),而且你不仅仅想要实现基类所完成绘制,那么你的OnPaint覆盖中就不应该包含MyBase.OnPaint调用。在这个场景中,如果你还想为使用派生控件的开发人员提供一个Paint事件,则必须在基类中提供一个Paint事件声明。如果基类中已存在了一个Paint事件,你则必须用Shadows关键字来声明你自己的事件从而将基类的事件隐藏起来。不要轻易尝试使用Shadows,因为它容易让使用该控件的开发人员搞糊涂,虽然在一个事件中使用这种方法看起来似乎更安全。
Shadows只是用一个和基类相似的名称向用户显示一种方法的派生版本。它所存在的潜在问题是用户仍然可以通过用CType将你的类中的对象转化为基类来得到基类中的方法。Control类中的一些方法对ImageButton来说是没有用的。比如,不需要Text属性。你可以在Visual Studio的 Properties窗口中将Control.Text用一个ReadOnly属性替换掉,返回一个空串。
前面这段代码不会导致出错,但却不会真正起什么作用;ImageButton不会通过其基类的Text属性来绘制控件。然而,如果用户尝试填写ImageButton的Text属性则会导致产生一个design-time(编译)只读错误。
最后,通过将 |
鏀惰棌鎴愬姛鏌ョ湅鏀惰棌>>
正在阅读:构建一个弹出式图象按钮构建一个弹出式图象按钮
2004-02-14 09:34
出处:PConline
责任编辑:huangpeidan
键盘也能翻页,试试“← →”键