ToolboxItem Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Fornece uma implementação básica de um item de caixa de ferramentas.
public ref class ToolboxItem : System::Runtime::Serialization::ISerializable
[System.Serializable]
public class ToolboxItem : System.Runtime.Serialization.ISerializable
public class ToolboxItem : System.Runtime.Serialization.ISerializable
[<System.Serializable>]
type ToolboxItem = class
interface ISerializable
type ToolboxItem = class
interface ISerializable
Public Class ToolboxItem
Implements ISerializable
- Herança
-
ToolboxItem
- Derivado
- Atributos
- Implementações
Exemplos
O exemplo de código a seguir fornece um componente que usa a IToolboxService interface para adicionar um manipulador de formato de dados de texto, ou ToolboxItemCreatorCallback, à caixa de ferramentas. O delegado de retorno de chamada do criador de dados passa todos os dados de texto colados na caixa de ferramentas e arrastados para um formulário para um personalizado ToolboxItem que cria um TextBox que contém o texto.
#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
O exemplo de código a seguir demonstra o uso da ToolboxItem classe como uma classe base para uma implementação de item de caixa de ferramentas personalizada.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Drawing.Design;
using System.Data;
using System.Runtime.Serialization;
using System.Text;
using System.Windows.Forms;
namespace CustomToolboxItem
{
public class Form1 : Form
{
private System.ComponentModel.IContainer components = null;
private UserControl1 userControl11;
private System.Windows.Forms.Label label1;
public Form1()
{
InitializeComponent();
}
private void InitializeComponent()
{
this.label1 = new System.Windows.Forms.Label();
this.userControl11 = new CustomToolboxItem.UserControl1();
this.SuspendLayout();
//
// label1
//
this.label1.Location = new System.Drawing.Point(15, 16);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(265, 62);
this.label1.TabIndex = 0;
this.label1.Text = "Build the project and drop UserControl1 from the toolbox onto the form.";
//
// userControl11
//
this.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.";
this.userControl11.Location = new System.Drawing.Point(74, 81);
this.userControl11.Name = "userControl11";
this.userControl11.Padding = new System.Windows.Forms.Padding(6);
this.userControl11.Size = new System.Drawing.Size(150, 150);
this.userControl11.TabIndex = 1;
//
// Form1
//
this.ClientSize = new System.Drawing.Size(292, 266);
this.Controls.Add(this.userControl11);
this.Controls.Add(this.label1);
this.Name = "Form1";
this.Text = "Form1";
this.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
{
private System.ComponentModel.IContainer components = null;
private System.Windows.Forms.Label label1;
public UserControl1()
{
InitializeComponent();
}
public string LabelText
{
get
{
return label1.Text;
}
set
{
label1.Text = value;
}
}
private void InitializeComponent()
{
this.label1 = new System.Windows.Forms.Label();
this.SuspendLayout();
//
// label1
//
this.label1.Dock = System.Windows.Forms.DockStyle.Fill;
this.label1.Location = new System.Drawing.Point(6, 6);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(138, 138);
this.label1.TabIndex = 0;
this.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";
this.label1.TextAlign =
System.Drawing.ContentAlignment.MiddleCenter;
//
// UserControl1
//
this.Controls.Add(this.label1);
this.Name = "UserControl1";
this.Padding = new System.Windows.Forms.Padding(6);
this.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 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;
}
}
}
}
public class ToolboxItemDialog : Form
{
private System.ComponentModel.IContainer components = null;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.TextBox textBox1;
private System.Windows.Forms.Button button1;
private System.Windows.Forms.Button button2;
public ToolboxItemDialog()
{
InitializeComponent();
}
private void InitializeComponent()
{
this.label1 = new System.Windows.Forms.Label();
this.textBox1 = new System.Windows.Forms.TextBox();
this.button1 = new System.Windows.Forms.Button();
this.button2 = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// label1
//
this.label1.Location = new System.Drawing.Point(10, 9);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(273, 43);
this.label1.TabIndex = 0;
this.label1.Text = "Enter the text you would like" +
" to have the user control populated with:";
//
// textBox1
//
this.textBox1.AutoSize = false;
this.textBox1.Location = new System.Drawing.Point(10, 58);
this.textBox1.Multiline = true;
this.textBox1.Name = "textBox1";
this.textBox1.Size = new System.Drawing.Size(270, 67);
this.textBox1.TabIndex = 1;
this.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
//
this.button1.DialogResult = System.Windows.Forms.DialogResult.OK;
this.button1.Location = new System.Drawing.Point(124, 131);
this.button1.Name = "button1";
this.button1.TabIndex = 2;
this.button1.Text = "OK";
//
// button2
//
this.button2.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.button2.Location = new System.Drawing.Point(205, 131);
this.button2.Name = "button2";
this.button2.TabIndex = 3;
this.button2.Text = "Cancel";
//
// ToolboxItemDialog
//
this.AcceptButton = this.button1;
this.CancelButton = this.button2;
this.ClientSize = new System.Drawing.Size(292, 162);
this.ControlBox = false;
this.Controls.Add(this.button2);
this.Controls.Add(this.button1);
this.Controls.Add(this.textBox1);
this.Controls.Add(this.label1);
this.FormBorderStyle =
System.Windows.Forms.FormBorderStyle.FixedDialog;
this.Name = "ToolboxItemDialog";
this.Text = "ToolboxItemDialog";
this.ResumeLayout(false);
}
public string CreationText
{
get
{
return 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
Comentários
ToolboxItem é uma classe base para itens de caixa de ferramentas que podem ser exibidos na caixa de ferramentas de um ambiente de tempo de design. Um item de caixa de ferramentas normalmente representa um componente a ser criado quando invocado em um documento de modo de design. A ToolboxItem classe fornece os métodos e as propriedades necessários para fornecer à caixa de ferramentas as propriedades de exibição para o item da caixa de ferramentas, criar um componente ou componentes quando usado e serializar e desserializar-se para persistência no banco de dados da caixa de ferramentas.
Uma instância da ToolboxItem classe pode ser configurada com um nome, bitmap e tipo para criar, sem criar uma classe derivada de ToolboxItem. A ToolboxItem classe também fornece uma classe base para implementações de item de caixa de ferramentas personalizadas. Um personalizado ToolboxItem pode criar vários componentes. Para implementar um item de caixa de ferramentas personalizado, você deve derivar e ToolboxItem substituir os CreateComponentsCoremétodos , Serializee Deserialize .
As seguintes propriedades e métodos devem ser configurados para que um ToolboxItem funcione corretamente:
A DisplayName propriedade especifica o rótulo do item da caixa de ferramentas quando exibido em uma caixa de ferramentas.
A TypeName propriedade especifica o nome totalmente qualificado do tipo do componente que o item cria. Se uma classe derivada criar vários componentes, a TypeName propriedade poderá ou não ser usada, dependendo se uma CreateComponentsCore substituição de método depende do valor dessa propriedade.
A AssemblyName propriedade especifica o assembly que contém o tipo de um componente que o item cria.
Opcionalmente Bitmap , a propriedade especifica uma imagem bitmap a ser exibida ao lado do nome de exibição do item da caixa de ferramentas na caixa de ferramentas.
Opcionalmente Filter , a propriedade contém objetos ToolboxItemFilterAttribute que determinam se o item da caixa de ferramentas pode ser usado em um componente específico.
O CreateComponentsCore método retorna a instância ou instâncias do componente para inserir onde essa ferramenta é usada.
O Serialize método salva o item da caixa de ferramentas em um especificado SerializationInfo.
O Deserialize método configura o item da caixa de ferramentas das informações de estado contidas no especificado SerializationInfo.
O Initialize método configura o item da caixa de ferramentas para criar o tipo de componente especificado, se o CreateComponentsCore método não tiver sido substituído para se comportar de forma diferente.
A Locked propriedade indica se as propriedades do item da caixa de ferramentas podem ser alteradas. Um item de caixa de ferramentas normalmente é bloqueado depois de ser adicionado a uma caixa de ferramentas.
O Lock método bloqueia um item de caixa de ferramentas.
O CheckUnlocked método gerará uma exceção se a Locked propriedade for
true
.
Construtores
ToolboxItem() |
Inicializa uma nova instância da classe ToolboxItem. |
ToolboxItem(Type) |
Inicializa uma nova instância da classe ToolboxItem que cria o tipo de componente especificado. |
Propriedades
AssemblyName |
Obtém ou define o nome do assembly que contém o tipo ou os tipos que o item de caixa de ferramentas cria. |
Bitmap |
Obtém ou define um bitmap para representar o item de caixa de ferramentas na caixa de ferramentas. |
Company |
Obtém ou define o nome da empresa para este ToolboxItem. |
ComponentType |
Obtém o tipo de componente para este ToolboxItem. |
DependentAssemblies |
Obtém ou define o AssemblyName para o item de caixa de ferramentas. |
Description |
Obtém ou define a descrição para este ToolboxItem. |
DisplayName |
Obtém ou define o nome de exibição desse item de caixa de ferramentas. |
Filter |
Obtém ou define o filtro que determina se o item de caixa de ferramentas pode ser usado em um componente de destino. |
IsTransient |
Obtém um valor que indica se o item de caixa de ferramentas é transitório. |
Locked |
Obtém um valor que indica se o ToolboxItem está bloqueado no momento. |
OriginalBitmap |
Obtém ou define o bitmap original que será usado na caixa de ferramentas para este item. |
Properties |
Obtém um dicionário de propriedades. |
TypeName |
Obtém ou define o nome totalmente qualificado do tipo de IComponent que o item de caixa de ferramentas cria quando invocado. |
Version |
Obtém a versão desta ToolboxItem. |
Métodos
CheckUnlocked() |
Gera uma exceção se o item de caixa de ferramentas está bloqueado no momento. |
CreateComponents() |
Cria os componentes que o item de caixa de ferramentas está configurado para criar. |
CreateComponents(IDesignerHost) |
Cria os componentes que o item de caixa de ferramentas está configurado para criar, usando o host de designer especificado. |
CreateComponents(IDesignerHost, IDictionary) |
Cria os componentes que o item de caixa de ferramentas está configurado para criar, usando o host de designer especificado e os valores padrão. |
CreateComponentsCore(IDesignerHost) |
Cria um componente ou uma matriz de componentes quando o item de caixa de ferramentas é invocado. |
CreateComponentsCore(IDesignerHost, IDictionary) |
Cria uma matriz de componentes quando o item de caixa de ferramentas é invocado. |
Deserialize(SerializationInfo, StreamingContext) |
Carrega o estado do item da caixa de ferramentas do objeto de informações de serialização especificado. |
Equals(Object) |
Determina se duas instâncias ToolboxItem são iguais. |
FilterPropertyValue(String, Object) |
Filtra um valor da propriedade antes de retorná-lo. |
GetHashCode() |
Retorna o código hash para a instância. |
GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
GetType(IDesignerHost) |
Habilita o acesso ao tipo associado ao item de caixa de ferramentas. |
GetType(IDesignerHost, AssemblyName, String, Boolean) |
Cria uma instância do tipo especificado, opcionalmente usando um nome de assembly e host de designer especificados. |
Initialize(Type) |
Inicializa o item de caixa de ferramentas atual com o tipo especificado a ser criado. |
Lock() |
Bloqueia o item de caixa de ferramentas e impede alterações em suas propriedades. |
MemberwiseClone() |
Cria uma cópia superficial do Object atual. (Herdado de Object) |
OnComponentsCreated(ToolboxComponentsCreatedEventArgs) |
Aciona o evento ComponentsCreated. |
OnComponentsCreating(ToolboxComponentsCreatingEventArgs) |
Aciona o evento ComponentsCreating. |
Serialize(SerializationInfo, StreamingContext) |
Salva o estado do item da caixa de ferramentas para o objeto de informações de serialização especificado. |
ToString() |
Retorna um valor String que representa o ToolboxItem atual. |
ValidatePropertyType(String, Object, Type, Boolean) |
Valida que um objeto é de um determinado tipo. |
ValidatePropertyValue(String, Object) |
Valida uma propriedade antes de ela ser atribuída ao dicionário de propriedades. |
Eventos
ComponentsCreated |
Ocorre imediatamente após a criação de componentes. |
ComponentsCreating |
Ocorre quando os componentes estão prestes a ser criados. |
Implantações explícitas de interface
ISerializable.GetObjectData(SerializationInfo, StreamingContext) |
Para obter uma descrição desse membro, consulte o método GetObjectData(SerializationInfo, StreamingContext). |