我想改变TextBox的外观,用复合控件的做法很容易做,加个自定义的外框,加个按钮什么的,但麻烦的是没法使用TextBox的属性、事件、方法了,除非把复合控件的TextBox作为公有成员曝露出来,或在新控件中重写它们(太可怕了),但MSDN中又好像不赞成这样的做法。如果采用直接从TextBox继承,上述问题是没了,可又因为新控件的窗口就是TextBox本身,要如何改变它的外观呢,所有的绘制操作全被限制在TextBox的Size里了,想加个外框,加个按钮都很难了。这要如何是好呢?真不知道DevExpress库是怎么做的。诸位帮帮忙了,出出主意,好吗?谢谢了。
你要修改外观的话在onpaint方法中实现
加按钮用textbox.Controls.Add....
;;;你要修改外观的话在onpaint方法中实现
;;;加按钮用textbox.Controls.Add....可是按钮不管放在什么位置都会覆盖掉部分TextBox啊,那样TextBox中的文本就有一部分会看不到或无法控制。
Control->XtralControl->EditBase->TextEdit...,而且从VS.NET对类中的某些方法的智能提示来看,也验证了这一点,比如SelectAll方法,就只有TextEdit和EditBase两个版本,看不到TextBox影子。这要是用Win API来做,问题就简单多了,马上就有切入点,这用了.NET反而不知道要如何了,哎...