2010-04-22 36 views

回答

1

不,沒有這種控制,但ToolStripControlHost Class將允許您創建自己的自定義ToolStrip控件。

更新:檢查該類我很快就颳起了

Public Class LineStyleMenuItem 
    Inherits Windows.Forms.ToolStripMenuItem 

Private style As Drawing2D.DashStyle 
Public Property LineStyle() As Drawing2D.DashStyle 
    Get 
     Return style 
    End Get 
    Set(ByVal value As Drawing2D.DashStyle) 
     style = value 
    End Set 
End Property 

    Public Sub New(ByVal style As Drawing2D.DashStyle) 
     Me.style = style 
    End Sub 

    Private Sub LineStyleMenuItem_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint 
     Const line_width As Integer = 6 
     Const padding As Integer = 6 
     Dim y As Single = CSng((Me.Height/2) - (line_width/2)) 
     Dim p As New Drawing.Pen(Color.Black, line_width) 
     p.DashStyle = style 
     e.Graphics.DrawLine(p, padding, y, Me.Width - padding, y) 
     p.Dispose() 
    End Sub 

End Class 

您可以通過將項目添加到一個工具條下拉控件使用它:

dropdownbutton.DropDownItems.Add(New LineStyleMenuItem(Drawing2D.DashStyle.Dash)) 
    dropdownbutton.DropDownItems.Add(New LineStyleMenuItem(Drawing2D.DashStyle.DashDot)) 
    dropdownbutton.DropDownItems.Add(New LineStyleMenuItem(Drawing2D.DashStyle.DashDotDot)) 
    dropdownbutton.DropDownItems.Add(New LineStyleMenuItem(Drawing2D.DashStyle.Dot)) 
    dropdownbutton.DropDownItems.Add(New LineStyleMenuItem(Drawing2D.DashStyle.Solid)) 

並獲得點擊的項目風格像這樣:

Private Sub dropdownbutton_DropDownItemClicked(ByVal sender As Object, ByVal e As System.Windows.Forms.ToolStripItemClickedEventArgs) Handles dropdownbutton.DropDownItemClicked 
    MsgBox(CType(e.ClickedItem, LineStyleMenuItem).LineStyle) 
End Sub 
+0

有意思。但是,在主持之前,我應該首先創建東西來主持:) – serhio 2010-04-22 12:00:39

+0

是的,這就是主意。有趣的是我沒有找到任何線型選擇工具,這意味着公衆中還沒有人做過。也許與自定義繪製項目組合框... – invert 2010-04-22 13:15:12