バージョン

InstanceProps プロパティ

ToolBase インスタンスに固有の各種プロパティを含む InstanceProps オブジェクトを返します。
シンタックス
'宣言
 
Public ReadOnly Property InstanceProps As InstanceProps
public InstanceProps InstanceProps {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

		' ツールの InstanceProps オブジェクトのすべてのプロパティを表示します
		Debug.WriteLine("InstanceProps properties ------------------------------------------")


		If Not e.Tool.InstanceProps Is Nothing Then
			Debug.WriteLine("Caption: '" + e.Tool.InstanceProps.Caption)
			Debug.WriteLine("DisplayStyle: '" + e.Tool.InstanceProps.DisplayStyle.ToString())
			Debug.WriteLine("MaxWidth: '" + e.Tool.InstanceProps.MaxWidth.ToString())
			Debug.WriteLine("MinWidth: '" + e.Tool.InstanceProps.MinWidth.ToString())
			Debug.WriteLine("Width: '" + e.Tool.InstanceProps.Width.ToString())

			' InstanceProps.IsFirstInGroup
			If e.Tool.InstanceProps.IsFirstInGroup Then
				Debug.WriteLine("Tool has been marked as first in group (i.e., preceded by a tool separator). This setting may have been customized by the end user.  Use the tool's IsFirstInGroupResolved property to get its effective setting.")
			Else
				Debug.WriteLine("Tool has NOT been marked as first in group (i.e., preceded by a tool separator).  This setting may have been customized by the end user.  Use the tool's IsFirstInGroupResolved property to get its effective setting.")
			End If

			' InstanceProps.RecentlyUsed
			If e.Tool.InstanceProps.RecentlyUsed = True Then
				Debug.WriteLine("Tool will appear when menus are first displayed even if AlwaysShowFullMenus is set to false.  This setting may have been customized by the end user.  Use the tool's RecentlyUsedResolved property to get its effective setting.")
			Else
				Debug.WriteLine("Tool will NOT appear when menus are first displayed if AlwaysShowFullMenus is set to false.  This setting may have been customized by the end user.  Use the tool's RecentlyUsedResolved property to get its effective setting.")
			End If

			' InstanceProps.Spring
			If e.Tool.InstanceProps.Spring = DefaultableBoolean.True Then
				If e.Tool.OwnerIsToolbar And e.Tool.OwningToolbar.SettingsResolved.FillEntireRowResolved = True Then
					Debug.WriteLine("Tool will adjust its width if there is unused space on its parent toolbar.")
				Else
					Debug.WriteLine("Tool will NOT adjust its width since it is not on a toolbar that has its FillEntireRow property set to true.")
				End If
			Else
				Debug.WriteLine("Tool will NOT automatically adjust its width when placed on toolbars with unused space available.")
			End If

			' InstanceProps.Visible
			If e.Tool.InstanceProps.Visible = DefaultableBoolean.True Then
				Debug.WriteLine("Tool has been marked as Visible.  Use the tool's VisibleResolved property to get its effective setting since the tool may not be visible for other reaosns.")
			Else
				Debug.WriteLine("Tool has NOT been marked as Visible.")
			End If
		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++;


			// ツールの InstanceProps オブジェクトのすべてのプロパティを表示します
			Debug.WriteLine("InstanceProps properties ------------------------------------------");


			if (e.Tool.InstanceProps != null)
			{
				Debug.WriteLine("Caption: '" + e.Tool.InstanceProps.Caption);
				Debug.WriteLine("DisplayStyle: '" + e.Tool.InstanceProps.DisplayStyle.ToString());
				Debug.WriteLine("MaxWidth: '" + e.Tool.InstanceProps.MaxWidth.ToString());
				Debug.WriteLine("MinWidth: '" + e.Tool.InstanceProps.MinWidth.ToString());
				Debug.WriteLine("Width: '" + e.Tool.InstanceProps.Width.ToString());

				// InstanceProps.IsFirstInGroup
				if (e.Tool.InstanceProps.IsFirstInGroup)
					Debug.WriteLine("Tool has been marked as first in group (i.e., preceded by a tool separator). This setting may have been customized by the end user.  Use the tool's IsFirstInGroupResolved property to get its effective setting.");
				else
					Debug.WriteLine("Tool has NOT been marked as first in group (i.e., preceded by a tool separator).  This setting may have been customized by the end user.  Use the tool's IsFirstInGroupResolved property to get its effective setting.");


				// InstanceProps.RecentlyUsed
				if (e.Tool.InstanceProps.RecentlyUsed == true)
					Debug.WriteLine("Tool will appear when menus are first displayed even if AlwaysShowFullMenus is set to false.  This setting may have been customized by the end user.  Use the tool's RecentlyUsedResolved property to get its effective setting.");
				else
					Debug.WriteLine("Tool will NOT appear when menus are first displayed if AlwaysShowFullMenus is set to false.  This setting may have been customized by the end user.  Use the tool's RecentlyUsedResolved property to get its effective setting.");


				// InstanceProps.Spring
				if (e.Tool.InstanceProps.Spring == DefaultableBoolean.True)
				{
					if (e.Tool.OwnerIsToolbar && 
						e.Tool.OwningToolbar.SettingsResolved.FillEntireRowResolved == true)
						Debug.WriteLine("Tool will adjust its width if there is unused space on its parent toolbar.");
					else
						Debug.WriteLine("Tool will NOT adjust its width since it is not on a toolbar that has its FillEntireRow property set to true.");
				}
				else
					Debug.WriteLine("Tool will NOT automatically adjust its width when placed on toolbars with unused space available.");
			

				// InstanceProps.Visible
				if (e.Tool.InstanceProps.Visible == DefaultableBoolean.True)
					Debug.WriteLine("Tool has been marked as Visible.  Use the tool's VisibleResolved property to get its effective setting since the tool may not be visible for other reaosns.");
				else
					Debug.WriteLine("Tool has NOT been marked as Visible.");
			}

			Debug.IndentLevel--;

		}
参照