Version

InstanceProps Property

Returns the InstanceProps object which contains properties that are unique to a ToolBase instance.
Syntax
'Declaration
 
Public ReadOnly Property InstanceProps As InstanceProps
public InstanceProps InstanceProps {get;}
Remarks

UltraWinToolbars represents a tool in two ways, as a root tool and an instance tool. Root tools are the tools that appear in the run-time customizer; their purpose is to create the tools that will appear on a toolbar or menu. Instance tools are the tools that the user actually interacts with; they appear on toolbars and/or menus. Each instance tool is related to exactly one root tool. Each root tool may have multiple instance tools derived from it. For example, a "FileSave" root tool may have two instance tools in an application - one displaying only text and appearing on the File menu, and one displaying only an image and appearing on the Standard toolbar.

Although functionally treated as distinct objects, root and instance tools share a close relationship. Changes made to a root tool will affect all instance tools derived from that root. Changes to an instance tool may affect only the one instance, or they may affect the root tool and by extension other instances of that root.

Because root and instance tools have some features that are shared and some that are unique, UltraWinToolbars splits some of each tool's properties between two objects. Properties that apply to the root tool and all instances of that tool are found on the SharedProps object, which is accessed via the tool's SharedProps property. As the name suggests, the properties of the SharedProps object are shared across all instances of the tool. A change to one of these properties will affect the root tool and all other instances of the tool.

Properties that affect only a single instance of the tool are found on the InstanceProps object, which is accessed via the tool's InstanceProps property. Although root tools have an InstanceProps property, this property returns Null, as there are no instance properties associated with a root tool.

These properties exist in an inheritance hierarchy, with common properties supporting a "use default" setting to indicate that the value of that property should be inherited. When resolving the property setting for a particular tool instance, the InstanceProps value for a property is applied first. If the InstanceProps property is set to its "use default" value (i.e. there is not InstanceProps value for the property) then the SharedProps setting for the property is used. The default values of the SharedProps object always provide a value that can be used by the control. If for some reason the SharedProps value is set to "use default", the intrinsic value of the root tool is used.

For a complete discussion of the difference between root and instance tools, see the following section of the help: Developer’s Guide > The Toolset > Controls and Components > WinToolbarsManager > Understanding WinToolbarsManager.

Example
The following code demonstrates how to access some of the information passed in the event arguments of the ToolClick event.

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() + "'")


		' Display property information for the tool that was clicked.
		Debug.IndentLevel += 1

		' Display all the properties of the tool's InstanceProps object.
		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() + "'");


			// Display property information for the tool that was clicked.
			Debug.IndentLevel++;


			// Display all the properties of the tool's InstanceProps object.
			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--;

		}
Requirements

Target Platforms: Windows 10, Windows 8.1, Windows 8, Windows 7, Windows Server 2012, Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

See Also