ToolboxItem Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Tillhandahåller en basimplementering av ett verktygslådeobjekt.
public ref class ToolboxItem : System::Runtime::Serialization::ISerializable
[System.Serializable]
public class ToolboxItem : System.Runtime.Serialization.ISerializable
[<System.Serializable>]
type ToolboxItem = class
interface ISerializable
Public Class ToolboxItem
Implements ISerializable
- Arv
-
ToolboxItem
- Härledda
- Attribut
- Implementeringar
Exempel
I följande kodexempel finns en komponent som använder IToolboxService gränssnittet för att lägga till en textdataformathanterare, eller ToolboxItemCreatorCallback, i verktygslådan. Ombudet för återanrop för dataskapare skickar alla textdata som klistras in i verktygslådan och dras till ett formulär till en anpassad ToolboxItem som skapar en TextBox som innehåller texten.
#using <System.Windows.Forms.dll>
#using <System.Drawing.dll>
#using <System.dll>
using namespace System;
using namespace System::ComponentModel;
using namespace System::ComponentModel::Design;
using namespace System::Drawing;
using namespace System::Drawing::Design;
using namespace System::Windows::Forms;
using namespace System::Security::Permissions;
namespace TextDataTextBoxComponent
{
// Custom toolbox item creates a TextBox and sets its Text property
// to the constructor-specified text.
[PermissionSetAttribute(SecurityAction::Demand, Name="FullTrust")]
public ref class TextToolboxItem: public ToolboxItem
{
private:
String^ text;
delegate void SetTextMethodHandler( Control^ c, String^ text );
public:
TextToolboxItem( String^ text )
: ToolboxItem()
{
this->text = text;
}
protected:
// ToolboxItem::CreateComponentsCore to create the TextBox
// and link a method to set its Text property.
virtual array<IComponent^>^ CreateComponentsCore( IDesignerHost^ host ) override
{
TextBox^ textbox = dynamic_cast<TextBox^>(host->CreateComponent( TextBox::typeid ));
// Because the designer resets the text of the textbox, use
// a SetTextMethodHandler to set the text to the value of
// the text data.
Control^ c = dynamic_cast<Control^>(host->RootComponent);
array<Object^>^temp0 = {textbox,text};
c->BeginInvoke( gcnew SetTextMethodHandler( this, &TextToolboxItem::OnSetText ), temp0 );
array<IComponent^>^temp1 = {textbox};
return temp1;
}
private:
// Method to set the text property of a TextBox after it is initialized.
void OnSetText( Control^ c, String^ text )
{
c->Text = text;
}
};
// Component that adds a "Text" data format ToolboxItemCreatorCallback
// to the Toolbox. This component uses a custom ToolboxItem that
// creates a TextBox containing the text data.
public ref class TextDataTextBoxComponent: public Component
{
private:
bool creatorAdded;
IToolboxService^ ts;
public:
TextDataTextBoxComponent()
{
creatorAdded = false;
}
property System::ComponentModel::ISite^ Site
{
// ISite to register TextBox creator
virtual System::ComponentModel::ISite^ get() override
{
return __super::Site;
}
virtual void set( System::ComponentModel::ISite^ value ) override
{
if ( value != nullptr )
{
__super::Site = value;
if ( !creatorAdded )
AddTextTextBoxCreator();
}
else
{
if ( creatorAdded )
RemoveTextTextBoxCreator();
__super::Site = value;
}
}
}
private:
// Adds a "Text" data format creator to the toolbox that creates
// a textbox from a text fragment pasted to the toolbox.
void AddTextTextBoxCreator()
{
ts = dynamic_cast<IToolboxService^>(GetService( IToolboxService::typeid ));
if ( ts != nullptr )
{
ToolboxItemCreatorCallback^ textCreator =
gcnew ToolboxItemCreatorCallback(
this,
&TextDataTextBoxComponent::CreateTextBoxForText );
try
{
ts->AddCreator(
textCreator,
"Text",
dynamic_cast<IDesignerHost^>(GetService( IDesignerHost::typeid )) );
creatorAdded = true;
}
catch ( Exception^ ex )
{
MessageBox::Show( ex->ToString(), "Exception Information" );
}
}
}
// Removes any "Text" data format creator from the toolbox.
void RemoveTextTextBoxCreator()
{
if ( ts != nullptr )
{
ts->RemoveCreator(
"Text",
dynamic_cast<IDesignerHost^>(GetService( IDesignerHost::typeid )) );
creatorAdded = false;
}
}
// ToolboxItemCreatorCallback delegate format method to create
// the toolbox item.
ToolboxItem^ CreateTextBoxForText( Object^ serializedObject, String^ format )
{
IDataObject^ o = gcnew DataObject(dynamic_cast<IDataObject^>(serializedObject));
if( o->GetDataPresent("System::String", true) )
{
String^ toolboxText = dynamic_cast<String^>(o->GetData( "System::String", true ));
return( gcnew TextToolboxItem( toolboxText ));
}
return nullptr;
}
public:
~TextDataTextBoxComponent()
{
if ( creatorAdded )
RemoveTextTextBoxCreator();
}
};
}
using System;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Drawing;
using System.Drawing.Design;
using System.Security.Permissions;
using System.Windows.Forms;
namespace TextDataTextBoxComponent
{
// Component that adds a "Text" data format ToolboxItemCreatorCallback
// to the Toolbox. This component uses a custom ToolboxItem that
// creates a TextBox containing the text data.
public class TextDataTextBoxComponent : Component
{
private bool creatorAdded = false;
private IToolboxService ts;
public TextDataTextBoxComponent()
{
}
// ISite override to register TextBox creator
public override System.ComponentModel.ISite Site
{
get
{
return base.Site;
}
set
{
if( value != null )
{
base.Site = value;
if (!creatorAdded)
{
AddTextTextBoxCreator();
}
}
else
{
if (creatorAdded)
{
RemoveTextTextBoxCreator();
}
base.Site = value;
}
}
}
// Adds a "Text" data format creator to the toolbox that creates
// a textbox from a text fragment pasted to the toolbox.
private void AddTextTextBoxCreator()
{
ts = (IToolboxService)GetService(typeof(IToolboxService));
if (ts != null)
{
ToolboxItemCreatorCallback textCreator =
new ToolboxItemCreatorCallback(this.CreateTextBoxForText);
try
{
ts.AddCreator(
textCreator,
"Text",
(IDesignerHost)GetService(typeof(IDesignerHost)));
creatorAdded = true;
}
catch(Exception ex)
{
MessageBox.Show(
ex.ToString(),
"Exception Information");
}
}
}
// Removes any "Text" data format creator from the toolbox.
private void RemoveTextTextBoxCreator()
{
if (ts != null)
{
ts.RemoveCreator(
"Text",
(IDesignerHost)GetService(typeof(IDesignerHost)));
creatorAdded = false;
}
}
// ToolboxItemCreatorCallback delegate format method to create
// the toolbox item.
private ToolboxItem CreateTextBoxForText(
object serializedObject,
string format)
{
DataObject o = new DataObject((IDataObject)serializedObject);
string[] formats = o.GetFormats();
if (o.GetDataPresent("System.String", true))
{
string toolboxText = (string)(o.GetData("System.String", true));
return (new TextToolboxItem(toolboxText));
}
return null;
}
protected override void Dispose(bool disposing)
{
if (creatorAdded)
{
RemoveTextTextBoxCreator();
}
}
}
// Custom toolbox item creates a TextBox and sets its Text property
// to the constructor-specified text.
public class TextToolboxItem : ToolboxItem
{
private string text;
private delegate void SetTextMethodHandler(Control c, string text);
public TextToolboxItem(string text) : base()
{
this.text = text;
}
// ToolboxItem.CreateComponentsCore override to create the TextBox
// and link a method to set its Text property.
protected override IComponent[] CreateComponentsCore(IDesignerHost host)
{
System.Windows.Forms.TextBox textbox =
(TextBox)host.CreateComponent(typeof(TextBox));
// Because the designer resets the text of the textbox, use
// a SetTextMethodHandler to set the text to the value of
// the text data.
Control c = host.RootComponent as Control;
c.BeginInvoke(
new SetTextMethodHandler(OnSetText),
new object[] {textbox, text});
return new System.ComponentModel.IComponent[] { textbox };
}
// Method to set the text property of a TextBox after it is initialized.
private void OnSetText(Control c, string text)
{
c.Text = text;
}
}
}
Imports System.ComponentModel
Imports System.ComponentModel.Design
Imports System.Drawing
Imports System.Drawing.Design
Imports System.Security.Permissions
Imports System.Windows.Forms
' Component that adds a "Text" data format ToolboxItemCreatorCallback
' to the Toolbox. This component uses a custom ToolboxItem that
' creates a TextBox containing the text data.
<PermissionSetAttribute(SecurityAction.Demand, Name:="FullTrust")> _
Public Class TextDataTextBoxComponent
Inherits System.ComponentModel.Component
Private creatorAdded As Boolean = False
Private ts As IToolboxService
Public Sub New()
End Sub
' ISite override to register TextBox creator
Public Overrides Property Site() As System.ComponentModel.ISite
Get
Return MyBase.Site
End Get
Set(ByVal Value As System.ComponentModel.ISite)
If (Value IsNot Nothing) Then
MyBase.Site = Value
If Not creatorAdded Then
AddTextTextBoxCreator()
End If
Else
If creatorAdded Then
RemoveTextTextBoxCreator()
End If
MyBase.Site = Value
End If
End Set
End Property
' Adds a "Text" data format creator to the toolbox that creates
' a textbox from a text fragment pasted to the toolbox.
Private Sub AddTextTextBoxCreator()
ts = CType(GetService(GetType(IToolboxService)), IToolboxService)
If (ts IsNot Nothing) Then
Dim textCreator As _
New ToolboxItemCreatorCallback(AddressOf Me.CreateTextBoxForText)
Try
ts.AddCreator( _
textCreator, _
"Text", _
CType(GetService(GetType(IDesignerHost)), IDesignerHost))
creatorAdded = True
Catch ex As Exception
MessageBox.Show(ex.ToString(), "Exception Information")
End Try
End If
End Sub
' Removes any "Text" data format creator from the toolbox.
Private Sub RemoveTextTextBoxCreator()
If (ts IsNot Nothing) Then
ts.RemoveCreator( _
"Text", _
CType(GetService(GetType(IDesignerHost)), IDesignerHost))
creatorAdded = False
End If
End Sub
' ToolboxItemCreatorCallback delegate format method to create
' the toolbox item.
Private Function CreateTextBoxForText( _
ByVal serializedObject As Object, _
ByVal format As String) As ToolboxItem
Dim o As New DataObject(CType(serializedObject, IDataObject))
Dim formats As String() = o.GetFormats()
If o.GetDataPresent("System.String", True) Then
Return New TextToolboxItem(CStr(o.GetData("System.String", True)))
End If
Return Nothing
End Function
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
If creatorAdded Then
RemoveTextTextBoxCreator()
End If
End Sub
End Class
' Custom toolbox item creates a TextBox and sets its Text property
' to the constructor-specified text.
<PermissionSetAttribute(SecurityAction.Demand, Name:="FullTrust")> _
Public Class TextToolboxItem
Inherits System.Drawing.Design.ToolboxItem
Private [text] As String
Delegate Sub SetTextMethodHandler( _
ByVal c As Control, _
ByVal [text] As String)
Public Sub New(ByVal [text] As String)
Me.text = [text]
End Sub
' ToolboxItem.CreateComponentsCore override to create the TextBox
' and link a method to set its Text property.
<PermissionSetAttribute(SecurityAction.Demand, Name:="FullTrust")> _
Protected Overrides Function CreateComponentsCore(ByVal host As IDesignerHost) As IComponent()
Dim textbox As TextBox = CType(host.CreateComponent(GetType(TextBox)), TextBox)
' Because the designer resets the text of the textbox, use
' a SetTextMethodHandler to set the text to the value of
' the text data.
Dim c As Control = host.RootComponent
c.BeginInvoke( _
New SetTextMethodHandler(AddressOf OnSetText), _
New Object() {textbox, [text]})
Return New System.ComponentModel.IComponent() {textbox}
End Function
' Method to set the text property of a TextBox after it is initialized.
Private Sub OnSetText(ByVal c As Control, ByVal [text] As String)
c.Text = [text]
End Sub
End Class
I följande kodexempel visas hur klassen används som basklass för en anpassad implementering av ToolboxItem verktygslådans objekt.
using System;
using System.ComponentModel;
using System.Drawing;
using System.Drawing.Design;
using System.Runtime.Serialization;
using System.Windows.Forms;
namespace CustomToolboxItem;
public class Form1 : Form
{
readonly IContainer _components;
UserControl1 userControl11;
Label label1;
public Form1() => InitializeComponent();
void InitializeComponent()
{
label1 = new Label();
userControl11 = new UserControl1();
SuspendLayout();
//
// label1
//
label1.Location = new Point(15, 16);
label1.Name = "label1";
label1.Size = new Size(265, 62);
label1.TabIndex = 0;
label1.Text = "Build the project and drop UserControl1 from the toolbox onto the form.";
//
// userControl11
//
userControl11.LabelText = "This is a custom user control. The text you see here is provided by a custom too" +
"lbox item when the user control is dropped on the form.";
userControl11.Location = new Point(74, 81);
userControl11.Name = "userControl11";
userControl11.Padding = new Padding(6);
userControl11.Size = new Size(150, 150);
userControl11.TabIndex = 1;
//
// Form1
//
ClientSize = new Size(292, 266);
Controls.Add(userControl11);
Controls.Add(label1);
Name = "Form1";
Text = "Form1";
ResumeLayout(false);
}
protected override void Dispose(bool disposing)
{
if (disposing && (_components != null))
{
_components.Dispose();
}
base.Dispose(disposing);
}
static void Main()
{
Application.EnableVisualStyles();
Application.Run(new Form1());
}
}
// Configure this user control to have a custom toolbox item.
[ToolboxItem(typeof(MyToolboxItem))]
public class UserControl1 : UserControl
{
readonly IContainer _components;
Label label1;
public UserControl1() => InitializeComponent();
public string LabelText
{
get => label1.Text; set => label1.Text = value;
}
void InitializeComponent()
{
label1 = new Label();
SuspendLayout();
//
// label1
//
label1.Dock = DockStyle.Fill;
label1.Location = new Point(6, 6);
label1.Name = "label1";
label1.Size = new Size(138, 138);
label1.TabIndex = 0;
label1.Text = "This is a custom user control. " +
"The text you see here is provided by a custom toolbox" +
" item when the user control is dropped on the form.\r\n";
label1.TextAlign =
ContentAlignment.MiddleCenter;
//
// UserControl1
//
Controls.Add(label1);
Name = "UserControl1";
Padding = new Padding(6);
ResumeLayout(false);
}
protected override void Dispose(bool disposing)
{
if (disposing && (_components != null))
{
_components.Dispose();
}
base.Dispose(disposing);
}
}
// 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())
{
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;
}
}
}
}
public class ToolboxItemDialog : Form
{
readonly IContainer _components;
Label label1;
TextBox textBox1;
Button button1;
Button button2;
public ToolboxItemDialog() => InitializeComponent();
void InitializeComponent()
{
label1 = new Label();
textBox1 = new TextBox();
button1 = new Button();
button2 = new Button();
SuspendLayout();
//
// label1
//
label1.Location = new Point(10, 9);
label1.Name = "label1";
label1.Size = new Size(273, 43);
label1.TabIndex = 0;
label1.Text = "Enter the text you would like" +
" to have the user control populated with:";
//
// textBox1
//
textBox1.AutoSize = false;
textBox1.Location = new Point(10, 58);
textBox1.Multiline = true;
textBox1.Name = "textBox1";
textBox1.Size = new Size(270, 67);
textBox1.TabIndex = 1;
textBox1.Text = "This is a custom user control. " +
"The text you see here is provided by a custom toolbox" +
" item when the user control is dropped on the form.";
//
// button1
//
button1.DialogResult = DialogResult.OK;
button1.Location = new Point(124, 131);
button1.Name = "button1";
button1.TabIndex = 2;
button1.Text = "OK";
//
// button2
//
button2.DialogResult = DialogResult.Cancel;
button2.Location = new Point(205, 131);
button2.Name = "button2";
button2.TabIndex = 3;
button2.Text = "Cancel";
//
// ToolboxItemDialog
//
AcceptButton = button1;
CancelButton = button2;
ClientSize = new Size(292, 162);
ControlBox = false;
Controls.Add(button2);
Controls.Add(button1);
Controls.Add(textBox1);
Controls.Add(label1);
FormBorderStyle =
FormBorderStyle.FixedDialog;
Name = "ToolboxItemDialog";
Text = "ToolboxItemDialog";
ResumeLayout(false);
}
public string CreationText => textBox1.Text;
protected override void Dispose(bool disposing)
{
if (disposing && (_components != null))
{
_components.Dispose();
}
base.Dispose(disposing);
}
}
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Drawing
Imports System.Drawing.Design
Imports System.Runtime.Serialization
Imports System.Text
Imports System.Windows.Forms
Public Class Form1
Inherits Form
Private components As System.ComponentModel.IContainer = Nothing
Friend WithEvents UserControl11 As UserControl1
Friend WithEvents label1 As System.Windows.Forms.Label
Public Sub New()
InitializeComponent()
End Sub
Private Sub InitializeComponent()
Me.label1 = New System.Windows.Forms.Label
Me.UserControl11 = New UserControl1
Me.SuspendLayout()
'
'label1
'
Me.label1.Location = New System.Drawing.Point(15, 16)
Me.label1.Name = "label1"
Me.label1.Size = New System.Drawing.Size(265, 62)
Me.label1.TabIndex = 0
Me.label1.Text = "Build the project and drop UserControl1" + _
" from the toolbox onto the form."
'
'UserControl11
'
Me.UserControl11.LabelText = "This is a custom user control. " + _
"The text you see here is provided by a custom too" + _
"lbox item when the user control is dropped on the form."
Me.UserControl11.Location = New System.Drawing.Point(74, 85)
Me.UserControl11.Name = "UserControl11"
Me.UserControl11.Padding = New System.Windows.Forms.Padding(6)
Me.UserControl11.TabIndex = 1
'
'Form1
'
Me.ClientSize = New System.Drawing.Size(292, 266)
Me.Controls.Add(Me.UserControl11)
Me.Controls.Add(Me.label1)
Me.Name = "Form1"
Me.Text = "Form1"
Me.ResumeLayout(False)
End Sub
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing AndAlso (components IsNot Nothing) Then
components.Dispose()
End If
MyBase.Dispose(disposing)
End Sub
Shared Sub Main()
Application.EnableVisualStyles()
Application.Run(New Form1())
End Sub
End Class
' Configure this user control to have a custom toolbox item.
<ToolboxItem(GetType(MyToolboxItem))> _
Public Class UserControl1
Inherits UserControl
Private components As System.ComponentModel.IContainer = Nothing
Private label1 As System.Windows.Forms.Label
Public Sub New()
InitializeComponent()
End Sub
Public Property LabelText() As String
Get
Return label1.Text
End Get
Set(ByVal value As String)
label1.Text = Value
End Set
End Property
Private Sub InitializeComponent()
Me.label1 = New System.Windows.Forms.Label()
Me.SuspendLayout()
'
' label1
'
Me.label1.Dock = System.Windows.Forms.DockStyle.Fill
Me.label1.Location = New System.Drawing.Point(6, 6)
Me.label1.Name = "label1"
Me.label1.Size = New System.Drawing.Size(138, 138)
Me.label1.TabIndex = 0
Me.label1.Text = "This is a custom user control. " + _
"The text you see here is provided by a custom toolbox" + _
" item when the user control is dropped on the form." + _
vbCr + vbLf
Me.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
'
' UserControl1
'
Me.Controls.Add(label1)
Me.Name = "UserControl1"
Me.Padding = New System.Windows.Forms.Padding(6)
Me.ResumeLayout(False)
End Sub
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing AndAlso (components IsNot Nothing) Then
components.Dispose()
End If
MyBase.Dispose(disposing)
End Sub
End Class
' Toolbox items must be serializable.
<Serializable()> _
Class MyToolboxItem
Inherits ToolboxItem
' The add components dialog in Visual Studio looks for a public
' constructor that takes a type.
Public Sub New(ByVal toolType As Type)
MyBase.New(toolType)
End Sub
' 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.
Sub New(ByVal info As SerializationInfo, _
ByVal context As StreamingContext)
Deserialize(info, context)
End Sub
' Let's override the creation code and pop up a dialog.
Protected Overrides Function CreateComponentsCore( _
ByVal host As System.ComponentModel.Design.IDesignerHost, _
ByVal defaultValues As System.Collections.IDictionary) _
As IComponent()
' 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 d As New ToolboxItemDialog()
If d.ShowDialog() = DialogResult.OK Then
Dim [text] As String = d.CreationText
Dim comps As IComponent() = _
MyBase.CreateComponentsCore(host, defaultValues)
' comps will have a single component: our data type.
CType(comps(0), UserControl1).LabelText = [text]
Return comps
Else
Return Nothing
End If
End Using
End Function
End Class
Public Class ToolboxItemDialog
Inherits Form
Private components As System.ComponentModel.IContainer = Nothing
Private label1 As System.Windows.Forms.Label
Private textBox1 As System.Windows.Forms.TextBox
Private button1 As System.Windows.Forms.Button
Private button2 As System.Windows.Forms.Button
Public Sub New()
InitializeComponent()
End Sub
Private Sub InitializeComponent()
Me.label1 = New System.Windows.Forms.Label()
Me.textBox1 = New System.Windows.Forms.TextBox()
Me.button1 = New System.Windows.Forms.Button()
Me.button2 = New System.Windows.Forms.Button()
Me.SuspendLayout()
'
' label1
'
Me.label1.Location = New System.Drawing.Point(10, 9)
Me.label1.Name = "label1"
Me.label1.Size = New System.Drawing.Size(273, 43)
Me.label1.TabIndex = 0
Me.label1.Text = "Enter the text you would like" + _
" to have the user control populated with:"
'
' textBox1
'
Me.textBox1.AutoSize = False
Me.textBox1.Location = New System.Drawing.Point(10, 58)
Me.textBox1.Multiline = True
Me.textBox1.Name = "textBox1"
Me.textBox1.Size = New System.Drawing.Size(270, 67)
Me.textBox1.TabIndex = 1
Me.textBox1.Text = "This is a custom user control. " + _
"The text you see here is provided by a custom toolbox" + _
" item when the user control is dropped on the form."
'
' button1
'
Me.button1.DialogResult = System.Windows.Forms.DialogResult.OK
Me.button1.Location = New System.Drawing.Point(124, 131)
Me.button1.Name = "button1"
Me.button1.TabIndex = 2
Me.button1.Text = "OK"
'
' button2
'
Me.button2.DialogResult = System.Windows.Forms.DialogResult.Cancel
Me.button2.Location = New System.Drawing.Point(205, 131)
Me.button2.Name = "button2"
Me.button2.TabIndex = 3
Me.button2.Text = "Cancel"
'
' ToolboxItemDialog
'
Me.AcceptButton = Me.button1
Me.CancelButton = Me.button2
Me.ClientSize = New System.Drawing.Size(292, 162)
Me.ControlBox = False
Me.Controls.Add(button2)
Me.Controls.Add(button1)
Me.Controls.Add(textBox1)
Me.Controls.Add(label1)
Me.FormBorderStyle = _
System.Windows.Forms.FormBorderStyle.FixedDialog
Me.Name = "ToolboxItemDialog"
Me.Text = "ToolboxItemDialog"
Me.ResumeLayout(False)
End Sub
Public ReadOnly Property CreationText() As String
Get
Return textBox1.Text
End Get
End Property
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing AndAlso (components IsNot Nothing) Then
components.Dispose()
End If
MyBase.Dispose(disposing)
End Sub
End Class
Kommentarer
ToolboxItem är en basklass för verktygslådeobjekt som kan visas i verktygslådan i en designmiljö. Ett verktygslådeobjekt representerar vanligtvis en komponent som ska skapas när det anropas i ett designlägesdokument. Klassen ToolboxItem innehåller de metoder och egenskaper som behövs för att tillhandahålla verktygslådan med visningsegenskaperna för verktygslådeobjektet, för att skapa en komponent eller komponenter när den används och för att serialisera och deserialisera sig själv för beständighet i verktygslådans databas.
En instans av ToolboxItem klassen kan konfigureras med ett namn, en bitmapp och en typ att skapa, utan att skapa en klass som härleds från ToolboxItem. Klassen ToolboxItem innehåller också en basklass för implementeringar av anpassade verktygslådaobjekt. En anpassad ToolboxItem kan skapa flera komponenter. Om du vill implementera ett anpassat verktygslådaobjekt måste du härleda från ToolboxItem och åsidosätta CreateComponentsCoremetoderna , Serializeoch Deserialize .
Följande egenskaper och metoder måste konfigureras för att en ToolboxItem ska fungera korrekt:
Egenskapen DisplayName anger etiketten för verktygslådeobjektet när det visas i en verktygslåda.
Egenskapen TypeName anger det fullständigt kvalificerade namnet på den typ av komponent som objektet skapar. Om en härledd klass skapar flera komponenter TypeName kan egenskapen användas eller inte, beroende på om en CreateComponentsCore metod åsidosättning beror på värdet för den här egenskapen.
Egenskapen AssemblyName anger den sammansättning som innehåller den typ av komponent som objektet skapar.
Egenskapen Bitmap anger eventuellt en bitmappsbild som ska visas bredvid visningsnamnet för verktygslådans objekt i verktygslådan.
Egenskapen Filter innehåller eventuellt alla ToolboxItemFilterAttribute objekt som avgör om verktygslådeobjektet kan användas på en viss komponent.
Metoden CreateComponentsCore returnerar komponentinstansen eller instanserna för att infoga den plats där verktyget används.
Metoden Serialize sparar verktygslådeobjektet till en angiven SerializationInfo.
Metoden Deserialize konfigurerar verktygslådans objekt från tillståndsinformationen som finns i den angivna SerializationInfo.
Metoden Initialize konfigurerar verktygslådans objekt för att skapa den angivna typen av komponent, om CreateComponentsCore metoden inte har åsidosatts för att bete sig annorlunda.
Egenskapen Locked anger om egenskaperna för verktygslådans objekt kan ändras. Ett verktygslådeobjekt låses vanligtvis när det har lagts till i en verktygslåda.
Metoden Lock låser ett verktygslådaobjekt.
Metoden CheckUnlocked genererar ett undantag om egenskapen Locked är
true.
Konstruktorer
| Name | Description |
|---|---|
| ToolboxItem() |
Initierar en ny instans av ToolboxItem klassen. |
| ToolboxItem(Type) |
Initierar en ny instans av ToolboxItem klassen som skapar den angivna komponenttypen. |
Egenskaper
| Name | Description |
|---|---|
| AssemblyName |
Hämtar eller anger namnet på sammansättningen som innehåller den typ eller de typer som verktygslådeobjektet skapar. |
| Bitmap |
Hämtar eller anger en bitmapp som representerar verktygslådans objekt i verktygslådan. |
| Company |
Hämtar eller anger företagsnamnet för den här ToolboxItem. |
| ComponentType |
Hämtar komponenttypen för den här ToolboxItem. |
| DependentAssemblies |
Hämtar eller anger AssemblyName för verktygslådans objekt. |
| Description |
Hämtar eller anger beskrivningen för den här ToolboxItem. |
| DisplayName |
Hämtar eller anger visningsnamnet för verktygslådans objekt. |
| Filter |
Hämtar eller anger det filter som avgör om verktygslådeobjektet kan användas på en målkomponent. |
| IsTransient |
Hämtar ett värde som anger om verktygslådeobjektet är tillfälligt. |
| Locked |
Hämtar ett värde som anger om är ToolboxItem låst. |
| OriginalBitmap |
Hämtar eller anger den ursprungliga bitmappen som ska användas i verktygslådan för det här objektet. |
| Properties |
Hämtar en ordlista med egenskaper. |
| TypeName |
Hämtar eller anger det fullständigt kvalificerade namnet på den typ av IComponent objekt i verktygslådan som skapas när det anropas. |
| Version |
Hämtar versionen för den här ToolboxItem. |
Metoder
| Name | Description |
|---|---|
| CheckUnlocked() |
Utlöser ett undantag om verktygslådeobjektet för närvarande är låst. |
| CreateComponents() |
Skapar de komponenter som verktygslådans objekt har konfigurerats för att skapa. |
| CreateComponents(IDesignerHost, IDictionary) |
Skapar de komponenter som verktygslådeobjektet är konfigurerat att skapa med den angivna designervärden och standardvärdena. |
| CreateComponents(IDesignerHost) |
Skapar de komponenter som verktygslådeobjektet är konfigurerat att skapa med den angivna designervärden. |
| CreateComponentsCore(IDesignerHost, IDictionary) |
Skapar en matris med komponenter när verktygslådeobjektet anropas. |
| CreateComponentsCore(IDesignerHost) |
Skapar en komponent eller en matris med komponenter när verktygslådeobjektet anropas. |
| Deserialize(SerializationInfo, StreamingContext) |
Läser in tillståndet för verktygslådans objekt från det angivna serialiseringsinformationsobjektet. |
| Equals(Object) |
Avgör om två ToolboxItem instanser är lika med. |
| FilterPropertyValue(String, Object) |
Filtrerar ett egenskapsvärde innan det returneras. |
| GetHashCode() |
Returnerar hash-koden för den här instansen. |
| GetType() |
Hämtar den aktuella instansen Type . (Ärvd från Object) |
| GetType(IDesignerHost, AssemblyName, String, Boolean) |
Skapar en instans av den angivna typen, om du vill med hjälp av en angiven designervärd och sammansättningsnamn. |
| GetType(IDesignerHost) |
Ger åtkomst till den typ som är associerad med verktygslådans objekt. |
| Initialize(Type) |
Initierar det aktuella verktygslådeobjektet med den angivna typen som ska skapas. |
| Lock() |
Låser verktygslådans objekt och förhindrar ändringar i dess egenskaper. |
| MemberwiseClone() |
Skapar en ytlig kopia av den aktuella Object. (Ärvd från Object) |
| OnComponentsCreated(ToolboxComponentsCreatedEventArgs) |
Genererar händelsen ComponentsCreated . |
| OnComponentsCreating(ToolboxComponentsCreatingEventArgs) |
Genererar händelsen ComponentsCreating . |
| Serialize(SerializationInfo, StreamingContext) |
Sparar tillståndet för verktygslådans objekt i det angivna serialiseringsinformationsobjektet. |
| ToString() |
Returnerar ett String som representerar den aktuella ToolboxItem. |
| ValidatePropertyType(String, Object, Type, Boolean) |
Verifierar att ett objekt är av en viss typ. |
| ValidatePropertyValue(String, Object) |
Verifierar en egenskap innan den tilldelas till egenskapsordlistan. |
Händelser
| Name | Description |
|---|---|
| ComponentsCreated |
Inträffar omedelbart efter att komponenter har skapats. |
| ComponentsCreating |
Inträffar när komponenter är på väg att skapas. |
Explicita gränssnittsimplementeringar
| Name | Description |
|---|---|
| ISerializable.GetObjectData(SerializationInfo, StreamingContext) |
En beskrivning av den här medlemmen finns i GetObjectData(SerializationInfo, StreamingContext) metoden . |