2017-03-31 6 views
1

私はここで「オプション」ラベルToolStripDropDownコントロールがあります。Windowsフォーム:ToolStripDropDown - 境界線を削除するか、ペイント

enter image description here

私は境界線を削除するか、またはそれにそれがフラッシュさせるために、特定の色をペイントするかしたいが。これを行うには新しいレンダラーまたは何かが必要ですか?私はオンラインの例を見つけることができませんでした。

答えて

1

はい、あなたがあなた自身のレンダラを行う必要があります。

public class BorderlessRenderer : ToolStripProfessionalRenderer { 

    public BorderlessRenderer() { 
    RoundedEdges = false; 
    } 

    protected override void OnRenderToolStripBorder(ToolStripRenderEventArgs e) { 
    //base.OnRenderToolStripBorder(e); 
    } 
} 

その後、あなたのToolStripコントロールに適用されます。

toolStrip1.Renderer = new BorderlessRenderer(); 
+0

私はこれを行うと、私は、コンストラクタが呼び出されることがわかりませんが、どれも「OnRender ...」メソッドのすべてが呼び出されます。私はツールストリップでRefresh()を押してみることさえしよう。 – RedLeader

+1

@RedLeader私はそれをテストしたばかりで、デバッガはOnRenderToolStripBorder行で停止します。ツールストリップのレンダラープロパティがカスタムクラスを使用するように設定されていることを確認してください。 – LarsTech

+0

ご協力いただきありがとうございます。私は、ここの方法では発砲しないというこの問題について、より深いポストを作りました:http://stackoverflow.com/questions/43193943/toolstriprenderer-not-firing-virtual-methods。ちょうど確認するために、私は割り当てを行います。 – RedLeader

関連する問題