0

カスタム ユーザー コントロール内にツールストリップ コントロールがあります。カスタム ユーザー コントロールは、同じフォームで複数回使用されます。ツールストリップにカスタム グラデーションを適用しようとしています。デザイン時にカスタム グラデーションを追加することはできないため、イベント サイクル中にツールストリップがフォームに配置される時点で追加する必要があります。

次のようなものを使用できます。

MyToolstrip.Renderer = New ToolStripProfessionalRenderer(New MyInheretedProColorTable)

問題は、それをどこに置くべきか分からないことです。これに当てはまると思われるイベントはありません。

複数のツールストリップ (異なる色にしたい) を使用しているため、すべてのツールストリップの色が同じ色に変更されるため、フォーム全体で ToolstripManager のレンダラーを変更できません。これは、MS がこれらを処理する方法が非常に奇妙です。

http://msdn.microsoft.com/en-us/library/system.windows.forms.toolstrip_events.aspx

何か案は?ありがとう

4

1 に答える 1

2

ツールストリップは、InitializeComponent()呼び出しによってコンストラクターで作成されます。そのため、その呼び出しの直後に、このステートメントも属します。ボイラープレートコードは次のとおりです。

Public Class UserControl1
    Public Sub New()
        '' This call is required by the Windows Form Designer.
        InitializeComponent()
        '' Add any initialization after the InitializeComponent() call.
        MyToolstrip.Renderer = New ToolStripProfessionalRenderer(New MyInheretedProColorTable)
    End Sub
End Class
于 2012-12-01T23:50:33.420 に答える