'宣言 Public ReadOnly Property SharedProps As SharedProps
public SharedProps SharedProps {get;}
UltraWinToolbars は、ルート ツールとインスタンス ツールという 2 通りの方法でツールを表します。ルートツールはランタイムカスタマイザに表示されるツールで、その用途はツールバーまたはメニューに表示されるツールを作成することです。インスタンスツールはユーザーが実際に操作するツールで、ツールバーまたはメニューに表示されます。インスタンスツールはそれぞれ、ただ1つのルートツールに関連付けられています。ルートツールは自身から派生した複数のインスタンスツールを持つことができます。たとえば、"FileSave" ルート ツールはアプリケーション内に 2 つのインスタンス ツールを持つことができます。1 つは [ファイル] メニューに現れてテキストのみを表示するツールで、もう 1 つは標準ツールバーに現れてイメージのみを表示するツールです。
ルート ツールとインスタンス ツールは機能的には別個のオブジェクトとして取り扱われますが、両者は密接に関係しています。ルートツールに対する変更は、そのルートから派生したすべてのインスタンスツールに影響を与えます。インスタンス ツールに対する変更は、その 1 つのインスタンスのみに影響を与える場合と、ルート ツールおよびルート ツールを通じてそのルートの他のインスタンスに影響を与える場合があります。
ルート ツールとインスタンス ツールには共有されている機能と固有の機能があるため、UltraWinToolbars では各ツールのプロパティの一部が 2 つのオブジェクトの間で分割されています。ルート ツールと、そのツールのすべてのインスタンスに適用されるプロパティは SharedProps オブジェクトが保持します。このオブジェクトにはツールの SharedProps プロパティを通じてアクセスします。その名前が示すように、SharedProps オブジェクトのプロパティはツールのすべてのインスタンスで共有されています。これらのプロパティの 1 つを変更すると、ルート ツールと、そのツールのすべてのインスタンスが影響を受けます。
ツールの 1 つのインスタンスのみに適用されるプロパティは InstanceProps オブジェクトが保持します。このオブジェクトにはツールの InstanceProps プロパティを通じてアクセスします。ルート ツールにも InstanceProps プロパティはありますが、ルート ツールに関連付けられたインスタンス プロパティは存在しないため、このプロパティは null を返します。
これらのプロパティは、"use default" 設定 (そのプロパティの値が継承されることを示す) をサポートする一般的なプロパティと共に、継承階層内に存在します。特定のツールインスタンスのプロパティ設定を解決するときは、最初にプロパティのInstanceProps値が適用されます。InstancePropsプロパティが"use default"値に設定されている場合 (つまり、そのプロパティのInstanceProps値は存在しない) は、プロパティのSharedProps設定が使用されます。SharedProps オブジェクトのデフォルト値は常に、コントロールで使用できる値を提供します。何らかの理由で SharedProps 値が "use default" に設定されている場合は、ルート ツールに固有の値が使用されます。
ルート ツールとインスタンス ツールの違いに関する詳細については、ヘルプの以下のセクションを参照してください。開発者ガイド > ツールセット > コントロールとコンポーネント > WinToolbarsManager > WinToolbarsManager の詳細。
Imports System.Diagnostics Imports Infragistics.Win Imports Infragistics.Win.UltraWinToolbars Private Sub UltraToolbarsManager1_ToolClick(ByVal sender As Object, ByVal e As Infragistics.Win.UltraWinToolbars.ToolClickEventArgs) Handles UltraToolbarsManager1.ToolClick Debug.WriteLine("The Tool with key '" + e.Tool.Key + "' has been clicked. It is of type: '" + e.Tool.GetType().ToString() + "'") ' クリックされたツールのプロパティ情報を表示します Debug.IndentLevel += 1 ' ツールの SharedProps オブジェクトのすべてのプロパティを表示します Debug.WriteLine("SharedProps properties ------------------------------------------") ' SharedProps.AllowMultipleInstances If e.Tool.SharedProps.AllowMultipleInstances = False Then Debug.WriteLine("Only one instance of this tool may be created!") End If Debug.WriteLine("Caption: '" + e.Tool.SharedProps.Caption) Debug.WriteLine("Tool has been assigned to category: '" + e.Tool.SharedProps.Category) Debug.WriteLine("The description that will be displayed for this tool in the runtime customizer is: '" + e.Tool.SharedProps.CustomizerCaption) Debug.WriteLine("DisplayStyle: '" + e.Tool.SharedProps.DisplayStyle.ToString()) Debug.WriteLine("The enabled status for this tool is: '" + e.Tool.SharedProps.Enabled.ToString()) Debug.WriteLine("MaxWidth: '" + e.Tool.SharedProps.MaxWidth.ToString()) Debug.WriteLine("MinWidth: '" + e.Tool.SharedProps.MinWidth.ToString()) Debug.WriteLine("The MergeOrder for this tool is: '" + e.Tool.SharedProps.MergeOrder.ToString()) Debug.WriteLine("The MergeType for this tool is: '" + e.Tool.SharedProps.MergeType.ToString()) Debug.WriteLine("The Priority for this tool when determining if it can be displayed on a toolbar with limited space is: '" + e.Tool.SharedProps.Priority.ToString()) Debug.WriteLine("The Shortcut key combination associated with this tool is: '" + e.Tool.SharedProps.Shortcut.ToString()) Debug.WriteLine("Spring: '" + e.Tool.SharedProps.Spring.ToString()) Debug.WriteLine("Total # of instances of this tool: '" + e.Tool.SharedProps.ToolInstances.Count.ToString()) Debug.WriteLine("ToolTipText: '" + e.Tool.SharedProps.ToolTipText.ToString()) Debug.WriteLine("Visible: '" + e.Tool.SharedProps.Visible.ToString()) Debug.WriteLine("Width: '" + e.Tool.SharedProps.Width.ToString()) If e.Tool.SharedProps.ShowInCustomizer = False Then Debug.WriteLine("This tool will NOT be shown in the runtime customizer.") End If Debug.IndentLevel -= 1 End Sub
using System.Diagnostics; using Infragistics.Win; using Infragistics.Win.UltraWinToolbars; private void ultraToolbarsManager1_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e) { Debug.WriteLine("The Tool with key '" + e.Tool.Key + "' has been clicked. It is of type: '" + e.Tool.GetType().ToString() + "'"); // クリックされたツールのプロパティ情報を表示します Debug.IndentLevel++; // ツールの SharedProps オブジェクトのすべてのプロパティを表示します Debug.WriteLine("SharedProps properties ------------------------------------------"); // SharedProps.AllowMultipleInstances if (e.Tool.SharedProps.AllowMultipleInstances == false) Debug.WriteLine("Only one instance of this tool may be created!"); Debug.WriteLine("Caption: '" + e.Tool.SharedProps.Caption); Debug.WriteLine("Tool has been assigned to category: '" + e.Tool.SharedProps.Category); Debug.WriteLine("The description that will be displayed for this tool in the runtime customizer is: '" + e.Tool.SharedProps.CustomizerCaption); Debug.WriteLine("DisplayStyle: '" + e.Tool.SharedProps.DisplayStyle.ToString()); Debug.WriteLine("The enabled status for this tool is: '" + e.Tool.SharedProps.Enabled.ToString()); Debug.WriteLine("MaxWidth: '" + e.Tool.SharedProps.MaxWidth.ToString()); Debug.WriteLine("MinWidth: '" + e.Tool.SharedProps.MinWidth.ToString()); Debug.WriteLine("The MergeOrder for this tool is: '" + e.Tool.SharedProps.MergeOrder.ToString()); Debug.WriteLine("The MergeType for this tool is: '" + e.Tool.SharedProps.MergeType.ToString()); Debug.WriteLine("The Priority for this tool when determining if it can be displayed on a toolbar with limited space is: '" + e.Tool.SharedProps.Priority.ToString()); Debug.WriteLine("The Shortcut key combination associated with this tool is: '" + e.Tool.SharedProps.Shortcut.ToString()); Debug.WriteLine("Spring: '" + e.Tool.SharedProps.Spring.ToString()); Debug.WriteLine("Total # of instances of this tool: '" + e.Tool.SharedProps.ToolInstances.Count.ToString()); Debug.WriteLine("ToolTipText: '" + e.Tool.SharedProps.ToolTipText.ToString()); Debug.WriteLine("Visible: '" + e.Tool.SharedProps.Visible.ToString()); Debug.WriteLine("Width: '" + e.Tool.SharedProps.Width.ToString()); if (e.Tool.SharedProps.ShowInCustomizer == false) Debug.WriteLine("This tool will NOT be shown in the runtime customizer."); Debug.IndentLevel--; }