2013-10-23 47 views
0

我有一個ToolStripTextBox,但我想將其設置爲我自己的MyCustomTextBox。這是我在其他地方進行驗證的一類。ToolStripTextBox中的自定義文本框

首先,我嘗試設置Control ot TextBox屬性,但它們是隻讀的而不是Overridable。

然後我試圖把我控制在派生類的構造函數:

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,但不是我的。令我驚訝的是,我看到沒有構造函數接收控件,它不在對象瀏覽器中,也不出現在智能感知框中。

最後我想直接從ToolStripControlHost我的派生類,但它看起來非常糟糕,我不得不自定義所有

有沒有做這一個標準,合理的方法是什麼?

+0

這是Winforms/WPF/Silverlight/ASP /等? – Steve

+0

您確實需要從ToolStripControlHost派生以嵌入您自己的自定義控件。 「看起來非常糟糕」只是不幫助我們幫助你。 –

+0

我的意思是,與我的ToolStripControlHost派生類出現的文本框沒有寬度,它適應輸入的文本,邊框被舍入,高度小於標準文本框,背景在一些地方是白色的,但在文字的背面是灰色的。我用相同的設置替換了我以前派生的ToolStripTextBox(它看起來正確),但它似乎沒有考慮到它們。我應該在我的課堂中配置所有的視覺設置?謝謝。 – DanielB

回答

0

在你能做的就是創建文本框的新版本,從ToolStripTextBox繼承並將其添加爲一個新的對象到工具條的項目集合的事情:

Public Class MyTextbox 
    Inherits ToolStripTextBox 
    Public Sub New() 
     Me.Text = "Test" 
    End Sub 
End Class 

ToolStrip1.Items.Add(New MyTextbox) 

如果控件添加到您的項目作爲用戶控件,它將自動添加到設計器中工具條的下拉列表中。