我已经创建了一个派生的WinForm文本框控件,它知道如何提供提示(那些灰色的单词,例如“密码”或“在此处输入搜索”)以及允许输入上的蜂鸣声被禁用。
我有两个公共属性BeepOnEnter和HintText,一个方法 - ResetHint然后覆盖Text属性,OnGotFocus事件和OnKeyPress事件。
此代码正常工作,直到我需要工具条上的文本框,也称为ToolStripTextBox。
我想对TextBox和ToolStripTextBox使用相同的代码。有没有办法最小化/减少冗余?我肯定需要具有从TextBox和ToolStripTextBox派生的类的代码,因此ui设计器允许我在表单或工具条上删除这些新控件,但无法弄清楚如何以OO方式执行它。
答案 0 :(得分:1)
ToolStripTextBox
派生自ToolStripControlHost
而TextBox
派生自TextBoxBase
,并且由于不允许多重继承,您最好创建第3个实用程序类并放置所有类似的功能。然后,您可以在派生控件中利用此类的实例来获得所需的常用功能。