我们知道,win form下的TextBox只有两种边框,FixedSingle和Fixed3D,而且在FixedSingle样式下,框内的文本又不居中,我想重新设计一个TextBox,可以呈现不同的边框,并改善其外观,好像不外乎三种方法:
1、直接从TextBox继承。
2、从UserConstrol继承,其中包含一个TextBox成员,也就是采用复合控件开发方法。
3、从头开发一个符合要求的TextBox控件。(好像太复杂了,在三种方法中实属下策)对于方法1,有一个问题,它只能在TextBox基类的窗口中范围中进行绘制,无法超越其范围进行定制。
而在方法2中,可以解决这个问题,可以将TextBox成员和在其外围绘制的边框组合成一个控件来对待,而且可以随意的调整TextBox成员在新控件中的位置(例如调整它和下边框之间的距离,这在方法1中就无法实现),但方法2也有一个问题,对于TextBox成员的事件要在新类中重写才能正确被新控件的用户使用,这在方法1中就不成问题,因为它直接继承了TextBox的所有事件。不知是否有两全其美的办法,希望有经验的弟兄指导一下,谢谢了。