2011-03-09 43 views
4

C#アプリケーションでToolStripを使用して、背景色を透明に設定しました。これにより、フォームの色が明らかになりますが、残念ながらToolStripの境界線は引き続き表示されます。C#ToolStripは透明ですが、境界線はまだ表示されていますか?

私はカスタムレンダラーを実装して、DrawBoarderメソッドを描画しないようにオーバーライドしましたが、含まれているすべてのボタンにも適用されるようです(つまり、ドロップダウンボタンのメニューも境界線なしで描画されます)。

だから私は立ち往生しています。 ToolStrip全体を透明にしてボタンを残しておくのに最適な方法は何ですか?

答えて

2
protected override void OnRenderToolStripBorder(ToolStripRenderEventArgs e) 
{ 
    if(e.ToolStrip.GetType().Name != "MyCustomToolStrip") 
    { 
     base.OnRenderToolStripBorder(e); 
    } 
} 
0

ツールストリップを非表示にしてボタンを保持しようとしているので、私はこれをそこに置く必要があります。

ツールストリップが必要ですか?

一見不必要なツールストリップなしでアプリケーションでボタンを使用した方が良いかもしれません。

+0

それが何よりものToolStripを使用するより安いです。 –

4

私はOnRenderToolStripBorderメソッドをオーバーライドしてみましたが、ボタンにはまったく影響しないようです。あなたはこれを試しましたか?私の特定のケースで

public class TestStripRenderer : ToolStripProfessionalRenderer 
{ 
    protected override void OnRenderToolStripBorder(ToolStripRenderEventArgs e) 
    { 
    } 
} 
+0

ツールバーにドロップダウンボタンを追加すると、ドロップダウンボタンのメニューは境界の有無に関係なくレンダリングされますか?私のシステムでは、このコードはツールストリップの境界線とドロップダウンメニューの境界線を取り除きます –

+0

ドロップダウンメニューは、このカスタムレンダラーの有無にかかわらずまったく同じように表示されます。 –

関連する問題