我有一个ToolStripTextBox,但我想将它设置为我自己的MyCustomTextBox。这是我在其他地方使用的类进行一些验证。
首先,我尝试设置Control ot TextBox属性,但它们是只读的而不是可覆盖的。
然后我尝试在派生类的构造函数中设置我的控件:
Public Class MyCustomSingleToolStripButton
Inherits ToolStripTextBox
Sub New()
MyBase.New(New MyCustomTextBox)
End Sub
End Class
正如ToolStripTextBox文档中所暗示的那样
http://msdn.microsoft.com/en-us/library/58xwdff2.aspx
Public Sub New(c As Control)
它编译好但我在运行时得到一个异常,微软建议我调用空构造函数我会得到一个很好的TextBox,但不是我的。令我惊讶的是,我发现没有构造函数接收Control,它不在Object Brower中,也不会出现在intellisense框中。
最后我试图直接从ToolStripControlHost派生我的类,但它看起来非常糟糕,我必须自定义所有
有没有一种标准而合理的方法可以做到这一点?
答案 0 :(得分:0)
您可以做的事情是创建一个继承自ToolStripTextBox的文本框的新版本,并将其作为新对象添加到工具条的Items集合中:
Public Class MyTextbox
Inherits ToolStripTextBox
Public Sub New()
Me.Text = "Test"
End Sub
End Class
ToolStrip1.Items.Add(New MyTextbox)
如果您将控件作为用户控件添加到项目中,它将自动添加到设计器中工具栏的下拉列表中。