2009-06-23 4 views

答えて

0

ToolStripRendererを作成し、コードにペイントボタンを作成する必要があります。このようなアプローチでは、あらゆる形状をシミュレートすることができます。

カスタムレンダラが完了したら、レンダラをツールストリップに割り当てて、そのレンダラを割り当てる必要があります。

カスタムレンダラの作成を記述するarticle

更新:this articleをチェックすることもできます。これはあなたの仕事に役立ちます。

+0

こんにちは、ありがとう。私はすでにこれをしている。ボタンの形状は異なるように描くことができますが、ツールストリップ上では、常に矩形領域を占めます。私は現在のイメージを提供するために上記で編集します。 – bperreault

+0

こんにちは 2番目のリンクをありがとう、面白いです。私はそれがどのようにできるかを見ます。 – bperreault

0

私はアービターのポストで2番目のリンクを見た後でこれが可能だと思いますが、私は私の解決策を維持します。締め切りのために時間が不足しているので、コントロールのタイプをプレーンなボタンに変更しました。ここではリージョンを設定し、シェブロンパスと呼ぶリージョンに設定することで必要なルックを再現することができました。上の2つのボタンは、Windows.Forms.Buttonから派生し、カスタムペイントとリージョンが設定されています。下の2つのボタンは、カスタムレンダラとカスタムペイントを備えたツールストリップボタンです。

alt text http://store.ezburn.com/images/productimages/toolstripbuttonshapes-final.jpg

これは誰にも参考になるかどうかはわかりません。しかし、ここに地域を設定するためのコードがあります:

Private Sub setRegion() 

     Dim r As Rectangle = ClientRectangle 
     Me.Region = New Region(getChevronPath(r.X, r.Y, r.Width, r.Height)) 

    End Sub 

Private Function getChevronPath(ByVal X As Single, ByVal Y As Single, _ 
     ByVal width As Single, ByVal height As Single) As GraphicsPath 

     Dim w As Integer = Convert.ToInt32(X + width - ChevronHeight) 
     Dim hh As Integer = Convert.ToInt32(height/2) 

     Dim gp As New GraphicsPath() 
     'top 
     gp.AddLine(X, Y, w, Y) 
     'arrowtop, on the right 
     gp.AddLine(w, Y, w + ChevronHeight, hh) 
     'arrowbottom, on the right 
     gp.AddLine(w + ChevronHeight, hh, w, Y + height) 
     'bottom 
     gp.AddLine(w, Y + height, X, Y + height) 

     If EndButton Then 
      'left 
      gp.AddLine(X, Y + height, X, Y) 
     Else 
      'arrowbottom, on the left 
      gp.AddLine(X, Y + height, ChevronHeight, hh) 
      'arrowtop on the left 
      gp.AddLine(ChevronHeight, hh, X, Y) 
     End If 

     gp.CloseFigure() 

     Return gp 
    End Function 
+0

これは、小さなコントロールをオーバーラップさせて(リージョンを使わずに)簡単に行うことができます。どちらもボタンやツールストリップアイテムで。もちろん、矢印の上下にある小さな三角形は上部ボタンに属しますが、これは大部分のユーザーにとって大きな問題ではありません。 – arbiter

+0

ああ、すでに重複しているのが分かります。とにかく小さなツールストリップボタンが重なると、同じ視覚的外観が得られます。 – arbiter

+0

こんにちは 同じ外観です - ボタンが押され、重なりがはっきりと見えるようになるまで。 :-( – bperreault

関連する問題