Export (0) Print
Expand All

ToolboxItem Constructor

Initializes a new instance of the ToolboxItem class.

This member is overloaded. For complete information about this member, including syntax, usage, and examples, click a name in the overload list.

  NameDescription
Public method ToolboxItem() Initializes a new instance of the ToolboxItem class.
Public method ToolboxItem(Type) Initializes a new instance of the ToolboxItem class that creates the specified type of component.
Top

The following code example demonstrates the use of the ToolboxItem constructor in a class derived from ToolboxItem for a custom toolbox item implementation. This code example is part of a larger example provided for the ToolboxItem class.

// Toolbox items must be serializable.
[Serializable]
class MyToolboxItem : ToolboxItem
{
    // The add components dialog in Visual Studio looks for a public 
    // constructor that takes a type. 
    public MyToolboxItem(Type toolType)
        : base(toolType)
    {
    }

    // And you must provide this special constructor for serialization. 
    // If you add additional data to MyToolboxItem that you 
    // want to serialize, you may override Deserialize and 
    // Serialize methods to add that data.  
    MyToolboxItem(SerializationInfo info, StreamingContext context)
    {
        Deserialize(info, context);
    }

    // Let's override the creation code and pop up a dialog. 
    protected override IComponent[] CreateComponentsCore(
        System.ComponentModel.Design.IDesignerHost host, 
        System.Collections.IDictionary defaultValues)
    {
        // Get the string we want to fill in the custom 
        // user control.  If the user cancels out of the dialog, 
        // return null or an empty array to signify that the  
        // tool creation was canceled. 
        using (ToolboxItemDialog d = new ToolboxItemDialog())
        {
            if (d.ShowDialog() == DialogResult.OK)
            {
                string text = d.CreationText;

                IComponent[] comps =
                    base.CreateComponentsCore(host, defaultValues);
                // comps will have a single component: our data type.
                ((UserControl1)comps[0]).LabelText = text;
                return comps;
            }
            else
            {
                return null;
            }
        }
    }
}

Community Additions

ADD
Show:
© 2014 Microsoft