成这个功能可能需要做很多工作,但对按钮来说,只需用图象作为表面就可以了。你可以通过从Button类中派生出你所需要的ImageButton类,用一个Button控件的Paint事件来绘制出适当的图象。然而,对于一个弹出式按钮来说,象Image、FlatStyle和AutoSize这样的Button属性是没有意义的。作为替代,你可以从Control基类中派生它并自己为它加上边框。这样做并不需要你编写额外的代码,它会生成一个更有效的控件和一个用于构建其他控件窗体的通用模板。 一个弹出式按钮的行为是很简单的。它有三种状态,每种状态都带有一个边框和一个图象(见图1)。Control基类支持一组可以被覆盖(override)的Mouse过程,以及Paint程序。你可以通过简单地从Windows.Forms.Control派生来开始一个程序。奇怪的是,Control基类不是一个“必须继承类”(通常被成为抽象类),就是说以该类为基类进行派生时,你无需覆盖任何方法。覆盖是指Windows和.NET允许你在某人或某个东西(即系统)调用了基类的方法时执行你自己的代码。这一点非常有用。 在绘制时进行选择 当一个终端用户切换到另一个页面时, ImageButton、Windows以及.NET会通知Control类。Control类将Win页码:[1] [2] [3] [4] [5] [6] [7] [8] 第2页、共8页 |