Imports System Imports System.Windows.Forms Imports Infragistics.Win.UltraWinToolbars Namespace ToolProvider #Region "ToolProviderAsManager class (derived from UltraToolbarsManager)" ' This class demonstrates how to write a custom tool provider that derives from UltraToolbarsManager. ' See the notes above for more information on the options available when creating custom tool providers. ' ' The ToolProviderAsManager class performs 2 important functions: ' 1. Registering the custom tool types that it supports (see the private ToolFactory class's constructor) ' When registering a custom tool type, the tool provider: ' a. supplies a reference to an IToolProvider implementation ' b. supplies a Guid to identify the custom tool type. This Guid will be contained in the ' customizer's request to create an instance of the custom tool type. ' c. supplies a descriptive string used in the NewTool dialog to identify the custom tool ' d. supplies a string to be used as the basis for the custom tool instance's key and caption ' ' 2. Contains a private ToolFactory class that implements the IToolProvider interface which allows the ' Customizer to call back when it needs to create an instance of a registered custom tool. ' ' The ToolProviderAsManager also overrides the virtual property ShowBuiltInToolTypesInCustomizer to ' demonstrate how to prevent toolbars manager from displaying the built-in tools in the designtime ' customizer. Public Class ToolProviderAsManager Inherits UltraToolbarsManager #Region "Member Variables" ' A static reference to our private tool provider class. An instance of this class is ' created in our static constructor. Private Shared m_toolFactory As ToolProviderAsManager.ToolFactory = Nothing #End Region 'Member Variables #Region "Constructor" '/ <summary> '/ Static constructor used to create a single instance of our private tool provider class. '/ </summary> Shared Sub New() ToolProviderAsManager.m_toolFactory = New ToolProviderAsManager.ToolFactory() End Sub '/ <summary> '/ Standard constructor. '/ </summary> Public Sub New() End Sub #End Region 'Constructor #Region "Constants" Friend Shared ReadOnly CUSTOMBUTTON2_TOOLID As Guid = New Guid("66227453-9991-1019-ABC4-872BCDEF5413") Friend Shared ReadOnly CUSTOMCOMBOBOX2_TOOLID As Guid = New Guid("66227453-9991-1019-ABC4-872BCDEF5414") #End Region 'Constants #Region "Base Class Overrides" #Region "ShowBuiltInToolTypesInCustomizer" Protected Overrides ReadOnly Property ShowBuiltInToolTypesInCustomizer() As Boolean Get ' Comment-out the following line and uncomment the subsequent line to prevent the ' toolbars manager's built-in tooltypes from being displayed in the runtime customizer. Return True 'return false; End Get End Property #End Region 'ShowBuiltInToolTypesInCustomizer #End Region 'Base Class Overrides #Region "Private Class ToolFactory" '/ <summary> '/ A private class that implements IToolProvider. '/ </summary> Private Class ToolFactory Implements IToolProvider #Region "Constructor" Friend Sub New() Dim result As Boolean ' Register some custom tool types with UltraToolbarsManager. Try ' CustomButtonTool class. result = UltraToolbarsManager.RegisterCustomToolType(Me, ToolProviderAsManager.CUSTOMBUTTON2_TOOLID, "Custom Button", "CustomButtonTool") If result = False Then MessageBox.Show("Error registering CustomButtonTool class!") End If ' CustomComboBoxTool class. result = UltraToolbarsManager.RegisterCustomToolType(Me, ToolProviderAsManager.CUSTOMCOMBOBOX2_TOOLID, "Custom ComboBox", "CustomComboBoxTool") If result = False Then MessageBox.Show("Error registering CustomComboBoxTool class!") End If Catch MessageBox.Show("Error registering custom tool classes!") End Try End Sub #End Region 'Constructor #Region "CreateToolInstance" '/ <summary> '/ Creates and returns an instance of the tool identified by the specified GUID id. '/ </summary> '/ <param name="toolID">The Guid identifier specified for the tool when it was registered.</param> '/ <param name="key">The key assigned to the tool.</param> '/ <returns>A new instance of the specified tool.</returns> Function CreateToolInstance(ByVal toolID As Guid, ByVal key As String) As ToolBase Implements IToolProvider.CreateToolInstance If toolID.Equals(ToolProviderAsManager.CUSTOMBUTTON2_TOOLID) Then Return New CustomButtonTool(key) End If If toolID.Equals(ToolProviderAsManager.CUSTOMCOMBOBOX2_TOOLID) Then Return New CustomComboBoxTool(key) End If ' The tool ID is unknown to us so return null. Return Nothing End Function #End Region 'CreateToolInstance End Class #End Region 'Private Class ToolFactory End Class #End Region 'ToolProviderAsManager class (derived from UltraToolbarsManager) End Namespace
using System; using System.Windows.Forms; using Infragistics.Win.UltraWinToolbars; namespace ToolProvider { #region ToolProviderAsManager class (derived from UltraToolbarsManager) /// <summary> /// This class demonstrates how to write a custom tool provider that derives from UltraToolbarsManager. /// See the notes above for more information on the options available when creating custom tool providers. /// /// The ToolProviderAsManager class performs 2 important functions: /// 1. Registering the custom tool types that it supports (see the private ToolFactory class's constructor) /// When registering a custom tool type, the tool provider: /// a. supplies a reference to an IToolProvider implementation /// b. supplies a Guid to identify the custom tool type. This Guid will be contained in the /// customizer's request to create an instance of the custom tool type. /// c. supplies a descriptive string used in the NewTool dialog to identify the custom tool /// d. supplies a string to be used as the basis for the custom tool instance's key and caption /// /// 2. Contains a private ToolFactory class that implements the IToolProvider interface which allows the /// Customizer to call back when it needs to create an instance of a registered custom tool. /// /// The ToolProviderAsManager also overrides the virtual property ShowBuiltInToolTypesInCustomizer to /// demonstrate how to prevent toolbars manager from displaying the built-in tools in the designtime /// customizer. /// </summary> public class ToolProviderAsManager : UltraToolbarsManager { #region Member Variables // A static reference to our private tool provider class. An instance of this class is // created in our static constructor. private static ToolProviderAsManager.ToolFactory toolFactory = null; #endregion Member Variables #region Constructor /// <summary> /// Static constructor used to create a single instance of our private tool provider class. /// </summary> static ToolProviderAsManager() { ToolProviderAsManager.toolFactory = new ToolProviderAsManager.ToolFactory(); } /// <summary> /// Standard constructor. /// </summary> public ToolProviderAsManager() { } #endregion Constructor #region Constants internal static readonly Guid CUSTOMBUTTON2_TOOLID = new Guid("66227453-9991-1019-ABC4-872BCDEF5413"); internal static readonly Guid CUSTOMCOMBOBOX2_TOOLID = new Guid("66227453-9991-1019-ABC4-872BCDEF5414"); #endregion Constants #region Base Class Overrides #region ShowBuiltInToolTypesInCustomizer protected override bool ShowBuiltInToolTypesInCustomizer { get { // Comment-out the following line and uncomment the subsequent line to prevent the // toolbars manager's built-in tooltypes from being displayed in the runtime customizer. return true; //return false; } } #endregion ShowBuiltInToolTypesInCustomizer #endregion Base Class Overrides #region Private Class ToolFactory /// <summary> /// A private class that implements IToolProvider. /// </summary> private class ToolFactory : IToolProvider { #region Constructor internal ToolFactory() { bool result; // Register some custom tool types with UltraToolbarsManager. try { // CustomButtonTool class. result = UltraToolbarsManager.RegisterCustomToolType(this, ToolProviderAsManager.CUSTOMBUTTON2_TOOLID, "Custom Button", "CustomButtonTool"); if (result == false) MessageBox.Show("Error registering CustomButtonTool class!"); // CustomComboBoxTool class. result = UltraToolbarsManager.RegisterCustomToolType(this, ToolProviderAsManager.CUSTOMCOMBOBOX2_TOOLID, "Custom ComboBox", "CustomComboBoxTool"); if (result == false) MessageBox.Show("Error registering CustomComboBoxTool class!"); } catch { MessageBox.Show("Error registering custom tool classes!"); } } #endregion Constructor #region CreateToolInstance /// <summary> /// Creates and returns an instance of the tool identified by the specified GUID id. /// </summary> /// <param name="toolID">The Guid identifier specified for the tool when it was registered.</param> /// <param name="key">The key assigned to the tool.</param> /// <returns>A new instance of the specified tool.</returns> ToolBase IToolProvider.CreateToolInstance(Guid toolID, string key) { if (toolID == ToolProviderAsManager.CUSTOMBUTTON2_TOOLID) return new CustomButtonTool(key); if (toolID == ToolProviderAsManager.CUSTOMCOMBOBOX2_TOOLID) return new CustomComboBoxTool(key); // The tool ID is unknown to us so return null. return null; } #endregion CreateToolInstance } #endregion Private Class ToolFactory } #endregion ToolProviderAsManager class (derived from UltraToolbarsManager) }