IToolboxService インターフェイス
アセンブリ: System.Drawing (system.drawing.dll 内)

<GuidAttribute("4BACD258-DE64-4048-BC4E-FEDBEF9ACB76")> _ <InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown)> _ Public Interface IToolboxService
[GuidAttribute("4BACD258-DE64-4048-BC4E-FEDBEF9ACB76")] [InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown)] public interface IToolboxService
[GuidAttribute(L"4BACD258-DE64-4048-BC4E-FEDBEF9ACB76")] [InterfaceTypeAttribute(ComInterfaceType::InterfaceIsIUnknown)] public interface class IToolboxService

IToolboxService インターフェイスは、ツールボックス項目とツールボックス クリエータのコールバック デリゲートの追加と削除、ツールボックス項目のシリアル化と逆シリアル化、および、ツールボックスの状態に関して情報検索と管理を行うためのプロパティとメソッドを提供します。
次のメソッドを使用して、ツールボックスの内容に関する情報を検索できます。
-
GetToolboxItems メソッドは、ツールボックス項目を取得します。オプションで、ツールボックスのカテゴリを指定してフィルタを適用できます。
-
SetSelectedToolboxItem メソッドは、指定した ToolboxItem を現在のツールボックス項目として選択します。
-
IsSupported メソッドは、指定したシリアル化オブジェクトが (そのオブジェクトが ToolboxItem である場合)、指定したデザイナ ホストによってサポートされているかどうか、または指定した属性に合致しているかどうかを示します。
次のメソッドを使用して、ツールボックス項目を追加および削除できます。
-
AddToolboxItem メソッドは、ToolboxItem をツールボックスに追加します。オプションで指定したカテゴリが存在しない場合は、作成します。
-
AddLinkedToolboxItem メソッドは、現在のプロジェクトだけで有効になっている ToolboxItem をツールボックスに追加します。
-
AddCreator メソッドは、ツールボックスで格納された特定の型のデータを変換する機能を持つ ToolboxItemCreatorCallback デリゲートを ToolboxItem に追加します。
-
RemoveCreator メソッドは、指定したデータ型の ToolboxItemCreatorCallback デリゲートを削除します。
以下のメソッドを使用して、ツールボックスを最新の情報で更新する、ツールボックス項目に使用のマークを付ける、またはマウス カーソルが現在のツールボックス項目を表すようにカーソルを設定できます。

IToolboxService をデザイン モードで使用して、ツールボックスのカテゴリと項目の一覧を取得して選択し、ツールボックスの項目からコンポーネントまたはコントロールを作成して、Form に追加するコード例を次に示します。この例を使用するには、コードをアセンブリにコンパイルし、Windows フォーム アプリケーションでこのアセンブリに対する参照を追加します。Visual Studio を使用している場合、IToolboxServiceControl はツールボックスに自動的に追加されます。フォームに IToolboxServiceControl のインスタンスを作成すると、その動作をテストできます。
Imports System Imports System.Collections Imports System.ComponentModel Imports System.ComponentModel.Design Imports System.Drawing Imports System.Drawing.Design Imports System.Data Imports System.Diagnostics Imports System.Reflection Imports System.Windows.Forms ' Provides an example control that functions in design mode to ' demonstrate use of the IToolboxService to list and select toolbox ' categories and items, and to add components or controls ' to the parent form using code. <DesignerAttribute(GetType(WindowMessageDesigner), GetType(IDesigner))> _ <System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.Demand, Name:="FullTrust")> _ Public Class IToolboxServiceControl Inherits System.Windows.Forms.UserControl Private WithEvents listBox1 As System.Windows.Forms.ListBox Private listBox2 As System.Windows.Forms.ListBox Private toolboxService As IToolboxService = Nothing Private tools As ToolboxItemCollection Private controlSpacingMultiplier As Integer Public Sub New() InitializeComponent() AddHandler listBox2.DoubleClick, AddressOf Me.CreateComponent controlSpacingMultiplier = 0 End Sub ' Obtain or reset IToolboxService reference on each siting of control. Public Overrides Property Site() As System.ComponentModel.ISite Get Return MyBase.Site End Get Set(ByVal Value As System.ComponentModel.ISite) MyBase.Site = Value ' If the component was sited, attempt to obtain ' an IToolboxService instance. If Not (MyBase.Site Is Nothing) Then toolboxService = CType(Me.GetService(GetType(IToolboxService)), IToolboxService) ' If an IToolboxService instance was located, update the ' category list. If Not (toolboxService Is Nothing) Then UpdateLists() End If Else toolboxService = Nothing End If End Set End Property ' Updates the list of categories and the list of items in the ' selected category. Private Sub UpdateLists() If Not (toolboxService Is Nothing) Then RemoveHandler listBox1.SelectedIndexChanged, AddressOf Me.UpdateSelectedCategory RemoveHandler listBox2.SelectedIndexChanged, AddressOf Me.UpdateSelectedItem listBox1.Items.Clear() Dim i As Integer For i = 0 To toolboxService.CategoryNames.Count - 1 listBox1.Items.Add(toolboxService.CategoryNames(i)) If toolboxService.CategoryNames(i) = toolboxService.SelectedCategory Then listBox1.SelectedIndex = i tools = toolboxService.GetToolboxItems(toolboxService.SelectedCategory) listBox2.Items.Clear() Dim j As Integer For j = 0 To tools.Count - 1 listBox2.Items.Add(tools(j).DisplayName) Next j End If Next i AddHandler Me.listBox1.SelectedIndexChanged, AddressOf Me.UpdateSelectedCategory AddHandler Me.listBox2.SelectedIndexChanged, AddressOf Me.UpdateSelectedItem End If End Sub ' Sets the selected category when a category is clicked in the ' category list. Private Sub UpdateSelectedCategory(ByVal sender As Object, ByVal e As System.EventArgs) Handles listBox1.SelectedIndexChanged If Not (toolboxService Is Nothing) Then toolboxService.SelectedCategory = CStr(listBox1.SelectedItem) UpdateLists() End If End Sub ' Sets the selected item when an item is clicked in the item list. Private Sub UpdateSelectedItem(ByVal sender As Object, ByVal e As System.EventArgs) If Not (toolboxService Is Nothing) Then If listBox1.SelectedIndex <> -1 Then If CStr(listBox1.SelectedItem) = toolboxService.SelectedCategory Then toolboxService.SetSelectedToolboxItem(tools(listBox2.SelectedIndex)) Else UpdateLists() End If End If End If End Sub ' Creates a control from a double-clicked toolbox item and adds ' it to the parent form. Private Sub CreateComponent(ByVal sender As Object, ByVal e As EventArgs) ' Obtains an IDesignerHost service from design environment. Dim host As IDesignerHost = CType(Me.GetService(GetType(IDesignerHost)), IDesignerHost) ' Gets the project components container. (Windows Forms control ' containment depends on controls collections). Dim container As IContainer = host.Container ' Identifies the parent Form. Dim parentForm As System.Windows.Forms.Form = Me.FindForm() ' Retrieves the parent Form's designer host. Dim parentHost As IDesignerHost = CType(parentForm.Site.GetService(GetType(IDesignerHost)), IDesignerHost) ' Create the components. Dim comps As IComponent() = Nothing Try comps = toolboxService.GetSelectedToolboxItem().CreateComponents(parentHost) Catch ex As Exception ' Catch and show any exceptions to prevent ' disabling the control's UI. MessageBox.Show(ex.ToString(), "Exception message") End Try If comps Is Nothing Then Return End If ' Add any created controls to the parent form's controls ' collection. Note: components are added from the ' ToolboxItem.CreateComponents(IDesignerHost) method. Dim i As Integer For i = 0 To comps.Length - 1 If Not (parentForm Is Nothing) AndAlso CType(comps(i), Object).GetType().IsSubclassOf(GetType(System.Windows.Forms.Control)) Then CType(comps(i), System.Windows.Forms.Control).Location = New Point(20 * controlSpacingMultiplier, 20 * controlSpacingMultiplier) If controlSpacingMultiplier > 10 Then controlSpacingMultiplier = 0 Else controlSpacingMultiplier += 1 End If parentForm.Controls.Add(CType(comps(i), System.Windows.Forms.Control)) End If Next i End Sub ' Displays labels. Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs) e.Graphics.DrawString("IToolboxService Control", New Font("Arial", 14), New SolidBrush(Color.Black), 6, 4) e.Graphics.DrawString("Category List", New Font("Arial", 8), New SolidBrush(Color.Black), 8, 26) e.Graphics.DrawString("Items in Category", New Font("Arial", 8), New SolidBrush(Color.Black), 208, 26) e.Graphics.DrawString("(Double-click item to add to parent form)", New Font("Arial", 7), New SolidBrush(Color.Black), 232, 12) End Sub Private Sub InitializeComponent() Me.listBox1 = New System.Windows.Forms.ListBox() Me.listBox2 = New System.Windows.Forms.ListBox() Me.SuspendLayout() Me.listBox1.Anchor = System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left Me.listBox1.Location = New System.Drawing.Point(8, 41) Me.listBox1.Name = "listBox1" Me.listBox1.Size = New System.Drawing.Size(192, 368) Me.listBox1.TabIndex = 0 Me.listBox2.Anchor = System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left Or System.Windows.Forms.AnchorStyles.Right Me.listBox2.Location = New System.Drawing.Point(208, 41) Me.listBox2.Name = "listBox2" Me.listBox2.Size = New System.Drawing.Size(228, 368) Me.listBox2.TabIndex = 3 Me.BackColor = System.Drawing.Color.Beige Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.listBox2, Me.listBox1}) Me.Location = New System.Drawing.Point(500, 400) Me.Name = "IToolboxServiceControl" Me.Size = New System.Drawing.Size(442, 422) Me.ResumeLayout(False) End Sub End Class ' This designer passes window messages to the controls at design time. Public Class WindowMessageDesigner Inherits System.Windows.Forms.Design.ControlDesigner Public Sub New() End Sub ' Window procedure override passes events to control. <System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.Demand, Name:="FullTrust")> _ Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message) If m.HWnd.Equals(Me.Control.Handle) Then MyBase.WndProc(m) Else Me.DefWndProc(m) End If End Sub End Class
using System; using System.Collections; using System.ComponentModel; using System.ComponentModel.Design; using System.Drawing; using System.Drawing.Design; using System.Data; using System.Diagnostics; using System.Windows.Forms; namespace IToolboxServiceExample { // Provides an example control that functions in design mode to // demonstrate use of the IToolboxService to list and select toolbox // categories and items, and to add components or controls // to the parent form using code. [DesignerAttribute(typeof(WindowMessageDesigner), typeof(IDesigner))] [System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name = "FullTrust")] public class IToolboxServiceControl : System.Windows.Forms.UserControl { private System.Windows.Forms.ListBox listBox1; private System.Windows.Forms.ListBox listBox2; private IToolboxService toolboxService = null; private ToolboxItemCollection tools; private int controlSpacingMultiplier; public IToolboxServiceControl() { InitializeComponent(); listBox2.DoubleClick += new EventHandler(this.CreateComponent); controlSpacingMultiplier = 0; } // Obtain or reset IToolboxService reference on each siting of control. public override System.ComponentModel.ISite Site { get { return base.Site; } set { base.Site = value; // If the component was sited, attempt to obtain // an IToolboxService instance. if( base.Site != null ) { toolboxService = (IToolboxService)this.GetService(typeof(IToolboxService)); // If an IToolboxService was located, update the // category list. if( toolboxService != null ) UpdateLists(); } else toolboxService = null; } } // Updates the list of categories and the list of items in the // selected category. private void UpdateLists() { if( toolboxService != null ) { this.listBox1.SelectedIndexChanged -= new System.EventHandler(this.UpdateSelectedCategory); this.listBox2.SelectedIndexChanged -= new System.EventHandler(this.UpdateSelectedItem); listBox1.Items.Clear(); for( int i=0; i<toolboxService.CategoryNames.Count; i++ ) { listBox1.Items.Add( toolboxService.CategoryNames[i] ); if( toolboxService.CategoryNames[i] == toolboxService.SelectedCategory ) { listBox1.SelectedIndex = i; tools = toolboxService.GetToolboxItems( toolboxService.SelectedCategory ); listBox2.Items.Clear(); for( int j=0; j<tools.Count; j++ ) listBox2.Items.Add( tools[j].DisplayName ); } } this.listBox1.SelectedIndexChanged += new System.EventHandler(this.UpdateSelectedCategory); this.listBox2.SelectedIndexChanged += new System.EventHandler(this.UpdateSelectedItem); } } // Sets the selected category when a category is clicked in the // category list. private void UpdateSelectedCategory(object sender, System.EventArgs e) { if( toolboxService != null ) { toolboxService.SelectedCategory = (string)listBox1.SelectedItem; UpdateLists(); } } // Sets the selected item when an item is clicked in the item list. private void UpdateSelectedItem(object sender, System.EventArgs e) { if( toolboxService != null ) { if( listBox1.SelectedIndex != -1 ) { if( (string)listBox1.SelectedItem == toolboxService.SelectedCategory ) toolboxService.SetSelectedToolboxItem(tools[listBox2.SelectedIndex]); else UpdateLists(); } } } // Creates a control from a double-clicked toolbox item and adds // it to the parent form. private void CreateComponent(object sender, EventArgs e) { // Obtains an IDesignerHost service from design environment. IDesignerHost host = (IDesignerHost)this.GetService(typeof(IDesignerHost)); // Get the project components container (Windows Forms control // containment depends on controls collections). IContainer container = host.Container; // Identifies the parent Form. System.Windows.Forms.Form parentForm = this.FindForm(); // Retrieves the parent Form's designer host. IDesignerHost parentHost = (IDesignerHost)parentForm.Site.GetService(typeof(IDesignerHost)); // Create the components. IComponent[] comps = null; try { comps = toolboxService.GetSelectedToolboxItem().CreateComponents(parentHost); } catch(Exception ex) { // Catch and show any exceptions to prevent disabling // the control's UI. MessageBox.Show(ex.ToString(), "Exception message"); } if( comps == null ) return; // Add any created controls to the parent form's controls // collection. Note: components are added from the // ToolboxItem.CreateComponents(IDesignerHost) method. for( int i=0; i<comps.Length; i++ ) { if( parentForm!= null && comps[i].GetType().IsSubclassOf(typeof(System.Windows.Forms.Control)) ) { ((System.Windows.Forms.Control)comps[i]).Location = new Point(20*controlSpacingMultiplier, 20*controlSpacingMultiplier); if( controlSpacingMultiplier > 10 ) controlSpacingMultiplier = 0; else controlSpacingMultiplier++; parentForm.Controls.Add( (System.Windows.Forms.Control)comps[i] ); } } } // Displays labels. protected override void OnPaint(System.Windows.Forms.PaintEventArgs e) { e.Graphics.DrawString("IToolboxService Control", new Font("Arial", 14), new SolidBrush(Color.Black), 6, 4); e.Graphics.DrawString("Category List", new Font("Arial", 8), new SolidBrush(Color.Black), 8, 26); e.Graphics.DrawString("Items in Category", new Font("Arial", 8), new SolidBrush(Color.Black), 208, 26); e.Graphics.DrawString("(Double-click item to add to parent form)", new Font("Arial", 7), new SolidBrush(Color.Black), 232, 12); } private void InitializeComponent() { this.listBox1 = new System.Windows.Forms.ListBox(); this.listBox2 = new System.Windows.Forms.ListBox(); this.SuspendLayout(); this.listBox1.Anchor = ((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left); this.listBox1.Location = new System.Drawing.Point(8, 41); this.listBox1.Name = "listBox1"; this.listBox1.Size = new System.Drawing.Size(192, 368); this.listBox1.TabIndex = 0; this.listBox1.SelectedIndexChanged += new System.EventHandler(this.UpdateSelectedCategory); this.listBox2.Anchor = (((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right); this.listBox2.Location = new System.Drawing.Point(208, 41); this.listBox2.Name = "listBox2"; this.listBox2.Size = new System.Drawing.Size(228, 368); this.listBox2.TabIndex = 3; this.BackColor = System.Drawing.Color.Beige; this.Controls.AddRange(new System.Windows.Forms.Control[] { this.listBox2 , this.listBox1}); this.Location = new System.Drawing.Point(500, 400); this.Name = "IToolboxServiceControl"; this.Size = new System.Drawing.Size(442, 422); this.ResumeLayout(false); } } // This designer passes window messages to the controls at design time. public class WindowMessageDesigner : System.Windows.Forms.Design.ControlDesigner { public WindowMessageDesigner() { } // Window procedure override passes events to control. [System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name="FullTrust")] protected override void WndProc(ref System.Windows.Forms.Message m) { if( m.HWnd == this.Control.Handle ) base.WndProc(ref m); else this.DefWndProc(ref m); } } }
#using <System.dll> #using <System.Design.dll> #using <System.Windows.Forms.dll> #using <System.Data.dll> #using <System.Drawing.dll> using namespace System; using namespace System::Collections; using namespace System::ComponentModel; using namespace System::ComponentModel::Design; using namespace System::Drawing; using namespace System::Drawing::Design; using namespace System::Data; using namespace System::Diagnostics; using namespace System::Windows::Forms; using namespace System::Security::Permissions; namespace IToolboxServiceExample { // This designer passes window messages to the controls at design time. public ref class WindowMessageDesigner: public System::Windows::Forms::Design::ControlDesigner { public: WindowMessageDesigner(){} protected: // Window procedure passes events to control. [SecurityPermission(SecurityAction::Demand, Flags=SecurityPermissionFlag::UnmanagedCode)] virtual void WndProc( System::Windows::Forms::Message% m ) override { if ( m.HWnd == this->Control->Handle ) ControlDesigner::WndProc( m ); else ControlDesigner::DefWndProc( m ); } }; // Provides an example control that functions in design mode to // demonstrate use of the IToolboxService to list and select toolbox // categories and items, and to add components or controls // to the parent form using code. [DesignerAttribute(IToolboxServiceExample::WindowMessageDesigner::typeid,IDesigner::typeid)] public ref class IToolboxServiceControl: public System::Windows::Forms::UserControl { private: System::Windows::Forms::ListBox^ listBox1; System::Windows::Forms::ListBox^ listBox2; IToolboxService^ toolboxService; ToolboxItemCollection^ tools; int controlSpacingMultiplier; public: IToolboxServiceControl() { InitializeComponent(); listBox2->DoubleClick += gcnew EventHandler( this, &IToolboxServiceControl::CreateComponent ); controlSpacingMultiplier = 0; } property System::ComponentModel::ISite^ Site { // Obtain or reset IToolboxService reference on each siting of control. virtual System::ComponentModel::ISite^ get() override { return __super::Site; } virtual void set( System::ComponentModel::ISite^ value ) override { __super::Site = value; // If the component was sited, attempt to obtain // an IToolboxService instance. if ( __super::Site != nullptr ) { toolboxService = dynamic_cast<IToolboxService^>(this->GetService( IToolboxService::typeid )); // If an IToolboxService was located, update the // category list. if ( toolboxService != nullptr ) UpdateLists(); } else toolboxService = nullptr; } } private: // Updates the list of categories and the list of items in the // selected category. [SecurityPermission(SecurityAction::Demand, Flags=SecurityPermissionFlag::UnmanagedCode)] void UpdateLists() { if ( toolboxService != nullptr ) { this->listBox1->SelectedIndexChanged -= gcnew System::EventHandler( this, &IToolboxServiceControl::UpdateSelectedCategory ); this->listBox2->SelectedIndexChanged -= gcnew System::EventHandler( this, &IToolboxServiceControl::UpdateSelectedItem ); listBox1->Items->Clear(); for ( int i = 0; i < toolboxService->CategoryNames->Count; i++ ) { listBox1->Items->Add( toolboxService->CategoryNames[ i ] ); if ( toolboxService->CategoryNames[ i ] == toolboxService->SelectedCategory ) { listBox1->SelectedIndex = i; tools = toolboxService->GetToolboxItems( toolboxService->SelectedCategory ); listBox2->Items->Clear(); for ( int j = 0; j < tools->Count; j++ ) listBox2->Items->Add( tools[ j ]->DisplayName ); } } this->listBox1->SelectedIndexChanged += gcnew System::EventHandler( this, &IToolboxServiceControl::UpdateSelectedCategory ); this->listBox2->SelectedIndexChanged += gcnew System::EventHandler( this, &IToolboxServiceControl::UpdateSelectedItem ); } } // Sets the selected category when a category is clicked in the // category list. void UpdateSelectedCategory( Object^ /*sender*/, System::EventArgs^ /*e*/ ) { if ( toolboxService != nullptr ) { toolboxService->SelectedCategory = dynamic_cast<String^>(listBox1->SelectedItem); UpdateLists(); } } // Sets the selected item when an item is clicked in the item list. void UpdateSelectedItem( Object^ /*sender*/, System::EventArgs^ /*e*/ ) { if ( toolboxService != nullptr ) { if ( listBox1->SelectedIndex != -1 ) { if ( dynamic_cast<String^>(listBox1->SelectedItem) == toolboxService->SelectedCategory ) toolboxService->SetSelectedToolboxItem( tools[ listBox2->SelectedIndex ] ); else UpdateLists(); } } } // Creates a control from a double-clicked toolbox item and adds // it to the parent form. void CreateComponent( Object^ /*sender*/, EventArgs^ /*e*/ ) { // Obtains an IDesignerHost service from design environment. IDesignerHost^ host = dynamic_cast<IDesignerHost^>(this->GetService( IDesignerHost::typeid )); // Get the project components container (Windows Forms control // containment depends on controls collections). IContainer^ container = host->Container; // Identifies the parent Form. System::Windows::Forms::Form^ parentForm = this->FindForm(); // Retrieves the parent Form's designer host. IDesignerHost^ parentHost = dynamic_cast<IDesignerHost^>(parentForm->Site->GetService( IDesignerHost::typeid )); // Create the components. array<IComponent^>^comps = nullptr; try { comps = toolboxService->GetSelectedToolboxItem()->CreateComponents( parentHost ); } catch ( Exception^ ex ) { // Catch and show any exceptions to prevent disabling // the control's UI. MessageBox::Show( ex->ToString(), "Exception message" ); } if ( comps == nullptr ) return; // Add any created controls to the parent form's controls // collection. Note: components are added from the // ToolboxItem::CreateComponents(IDesignerHost*) method. for ( int i = 0; i < comps->Length; i++ ) { if ( parentForm != nullptr && comps[ i ]->GetType()->IsSubclassOf( System::Windows::Forms::Control::typeid ) ) { (dynamic_cast<System::Windows::Forms::Control^>(comps[ i ]))->Location = Point(20 * controlSpacingMultiplier,20 * controlSpacingMultiplier); if ( controlSpacingMultiplier > 10 ) controlSpacingMultiplier = 0; else controlSpacingMultiplier++; parentForm->Controls->Add( dynamic_cast<System::Windows::Forms::Control^>(comps[ i ]) ); } } } protected: // Displays labels. virtual void OnPaint( System::Windows::Forms::PaintEventArgs^ e ) override { e->Graphics->DrawString( "IToolboxService Control", gcnew System::Drawing::Font( "Arial",14 ), gcnew SolidBrush( Color::Black ), 6, 4 ); e->Graphics->DrawString( "Category List", gcnew System::Drawing::Font( "Arial",8 ), gcnew SolidBrush( Color::Black ), 8, 26 ); e->Graphics->DrawString( "Items in Category", gcnew System::Drawing::Font( "Arial",8 ), gcnew SolidBrush( Color::Black ), 208, 26 ); e->Graphics->DrawString( "(Double-click item to add to parent form)", gcnew System::Drawing::Font( "Arial",7 ), gcnew SolidBrush( Color::Black ), 232, 12 ); } private: void InitializeComponent() { this->listBox1 = gcnew System::Windows::Forms::ListBox; this->listBox2 = gcnew System::Windows::Forms::ListBox; this->SuspendLayout(); this->listBox1->Anchor = static_cast<AnchorStyles>(System::Windows::Forms::AnchorStyles::Top | System::Windows::Forms::AnchorStyles::Bottom | System::Windows::Forms::AnchorStyles::Left); this->listBox1->Location = System::Drawing::Point( 8, 41 ); this->listBox1->Name = "listBox1"; this->listBox1->Size = System::Drawing::Size( 192, 368 ); this->listBox1->TabIndex = 0; this->listBox1->SelectedIndexChanged += gcnew System::EventHandler( this, &IToolboxServiceControl::UpdateSelectedCategory ); this->listBox2->Anchor = static_cast<AnchorStyles>(System::Windows::Forms::AnchorStyles::Top | System::Windows::Forms::AnchorStyles::Bottom | System::Windows::Forms::AnchorStyles::Left | System::Windows::Forms::AnchorStyles::Right); this->listBox2->Location = System::Drawing::Point( 208, 41 ); this->listBox2->Name = "listBox2"; this->listBox2->Size = System::Drawing::Size( 228, 368 ); this->listBox2->TabIndex = 3; this->BackColor = System::Drawing::Color::Beige; array<System::Windows::Forms::Control^>^temp0 = {this->listBox2 ,this->listBox1}; this->Controls->AddRange( temp0 ); this->Location = System::Drawing::Point( 500, 400 ); this->Name = "IToolboxServiceControl*"; this->Size = System::Drawing::Size( 442, 422 ); this->ResumeLayout( false ); } }; }
package IToolboxServiceExample; import System.*; import System.Collections.*; import System.ComponentModel.*; import System.ComponentModel.Design.*; import System.Drawing.*; import System.Drawing.Design.*; import System.Data.*; import System.Diagnostics.*; import System.Windows.Forms.*; import System.Security.Permissions.*; // Provides an example control that functions in design mode to // demonstrate use of the IToolboxService to list and select toolbox // categories and items, and to add components or controls // to the parent form using code. /** @attribute DesignerAttribute(WindowMessageDesigner.class, IDesigner.class) */ public class IToolboxServiceControl extends System.Windows.Forms.UserControl { private System.Windows.Forms.ListBox listBox1; private System.Windows.Forms.ListBox listBox2; private IToolboxService toolboxService = null; private ToolboxItemCollection tools; private int controlSpacingMultiplier; public IToolboxServiceControl() { InitializeComponent(); listBox2.add_DoubleClick(new EventHandler(this.CreateComponent)); controlSpacingMultiplier = 0; } //IToolboxServiceControl() // Obtain or reset IToolboxService reference on each siting of control. /** @property */ public System.ComponentModel.ISite get_Site() { return super.get_Site(); } // get_Site /** @property */ public void set_Site(System.ComponentModel.ISite value) { super.set_Site(value); // If the component was sited, attempt to obtain // an IToolboxService instance. if (super.get_Site() != null) { toolboxService = (IToolboxService)this.GetService( IToolboxService.class.ToType()); // If an IToolboxService was located, update the // category list. if (toolboxService != null) { UpdateLists(); } } else { toolboxService = null; } } //set_Site // Updates the list of categories and the list of items in the //selected category. /** @attribute SecurityPermissionAttribute(SecurityAction.Demand, Flags=SecurityPermissionFlag.UnmanagedCode) */ private void UpdateLists() { if (toolboxService != null) { this.listBox1.remove_SelectedIndexChanged(new System.EventHandler( this.UpdateSelectedCategory)); this.listBox2.remove_SelectedIndexChanged(new System.EventHandler( this.UpdateSelectedItem)); listBox1.get_Items().Clear(); for (int i = 0; i < toolboxService.get_CategoryNames(). get_Count(); i++) { listBox1.get_Items().Add(toolboxService.get_CategoryNames(). get_Item(i)); if (toolboxService.get_CategoryNames().get_Item(i).Equals( toolboxService.get_SelectedCategory())) { listBox1.set_SelectedIndex(i); tools = toolboxService.GetToolboxItems(toolboxService. get_SelectedCategory()); listBox2.get_Items().Clear(); for (int j = 0; j < tools.get_Count(); j++) { listBox2.get_Items().Add(tools.get_Item(j). get_DisplayName()); } } } this.listBox1.add_SelectedIndexChanged(new System.EventHandler( this.UpdateSelectedCategory)); this.listBox2.add_SelectedIndexChanged(new System.EventHandler( this.UpdateSelectedItem)); } } //UpdateLists // Sets the selected category when a category is clicked in the // category list. private void UpdateSelectedCategory(Object sender, System.EventArgs e) { if (toolboxService != null) { toolboxService.set_SelectedCategory(listBox1.get_SelectedItems(). ToString()); UpdateLists(); } } //UpdateSelectedCategory // Sets the selected item when an item is clicked in the item list. private void UpdateSelectedItem(Object sender, System.EventArgs e) { if (toolboxService != null) { if (listBox1.get_SelectedIndex() != -1) { if ((listBox1.get_SelectedItem().ToString()).Equals( toolboxService.get_SelectedCategory())) { toolboxService.SetSelectedToolboxItem(tools.get_Item( listBox2.get_SelectedIndex())); } else { UpdateLists(); } } } } //UpdateSelectedItem // Creates a control from a double-clicked toolbox item and adds // it to the parent form. private void CreateComponent(Object sender, EventArgs e) { // Obtains an IDesignerHost service from design environment. IDesignerHost host = (IDesignerHost)this.GetService( IDesignerHost.class.ToType()); // Get the project components container (Windows Forms control // containment depends on controls collections). IContainer container = host.get_Container(); // Identifies the parent Form. System.Windows.Forms.Form parentForm = this.FindForm(); // Retrieves the parent Form's designer host. IDesignerHost parentHost = (IDesignerHost)parentForm.get_Site(). GetService(IDesignerHost.class.ToType()); // Create the components. IComponent comps[] = null; try { comps = toolboxService.GetSelectedToolboxItem(). CreateComponents(parentHost); } catch (System.Exception ex) { // Catch and show any exceptions to prevent disabling // the control's UI. MessageBox.Show(ex.ToString(), "Exception message"); } if (comps == null) { return; } // Add any created controls to the parent form's controls // collection. Note: components are added from the // ToolboxItem.CreateComponents(IDesignerHost) method. for (int i = 0; i < comps.length; i++) { if ((parentForm != null) && (comps[i].GetType().IsSubclassOf( System.Windows.Forms.Control.class.ToType()))) { ((System.Windows.Forms.Control)comps[i]).set_Location( new Point(20 * controlSpacingMultiplier, 20 * controlSpacingMultiplier)); if (controlSpacingMultiplier > 10) { controlSpacingMultiplier = 0; } else { controlSpacingMultiplier++; } parentForm.get_Controls().Add((System.Windows.Forms. Control)comps[i]); } } } //CreateComponent // Displays labels. protected void OnPaint(System.Windows.Forms.PaintEventArgs e) { e.get_Graphics().DrawString("IToolboxService Control", new Font( "Arial", 14), new SolidBrush(Color.get_Black()), 6, 4); e.get_Graphics().DrawString("Category List", new Font("Arial", 8), new SolidBrush(Color.get_Black()), 8, 26); e.get_Graphics().DrawString("Items in Category", new Font("Arial", 8), new SolidBrush(Color.get_Black()), 208, 26); e.get_Graphics().DrawString("(Double-click item to add to parent form)" , new Font("Arial", 7), new SolidBrush(Color.get_Black()), 232, 12); } //OnPaint private void InitializeComponent() { this.listBox1 = new System.Windows.Forms.ListBox(); this.listBox2 = new System.Windows.Forms.ListBox(); this.SuspendLayout(); this.listBox1.set_Anchor(System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms. AnchorStyles.Left); this.listBox1.set_Location(new System.Drawing.Point(8, 41)); this.listBox1.set_Name("listBox1"); this.listBox1.set_Size(new System.Drawing.Size(192, 368)); this.listBox1.set_TabIndex(0); this.listBox1.add_SelectedIndexChanged(new System.EventHandler(this. UpdateSelectedCategory)); this.listBox2.set_Anchor(System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom | System.Windows. Forms.AnchorStyles. Left | System.Windows.Forms.AnchorStyles. Right); this.listBox2.set_Location(new System.Drawing.Point(208, 41)); this.listBox2.set_Name("listBox2"); this.listBox2.set_Size(new System.Drawing.Size(228, 368)); this.listBox2.set_TabIndex(3); this.set_BackColor(System.Drawing.Color.get_Beige()); this.get_Controls().AddRange(new System.Windows.Forms.Control[] {this. listBox2, this.listBox1}); this.set_Location(new System.Drawing.Point(500, 400)); this.set_Name("IToolboxServiceControl"); this.set_Size(new System.Drawing.Size(442, 422)); this.ResumeLayout(false); } //InitializeComponent } //IToolboxServiceControl // This designer passes window messages to the controls at design time. public class WindowMessageDesigner extends System.Windows.Forms.Design.ControlDesigner { public WindowMessageDesigner() { } //WindowMessageDesigner // Window procedure override passes events to control. /** @attribute SecurityPermissionAttribute(SecurityAction.Demand, Flags=SecurityPermissionFlag.UnmanagedCode) */ protected void WndProc(System.Windows.Forms.Message m) { if (m.get_HWnd().Equals(this.get_Control().get_Handle())) { super.WndProc(m); } else { this.DefWndProc(m); } } //WndProc } //WindowMessageDesigner
IToolboxService を使用して、ツールボックスに、"Text" データ形式のハンドラを追加したり、ToolboxItemCreatorCallback を実行したりするコンポーネントのコード例を次に示します。データ クリエータのコールバック デリゲートは、テキスト データを渡してツールボックスに貼り付け、テキストを格納する TextBox を作成するカスタム ToolboxItem のフォームにそのテキスト データをドラッグします。
Imports System Imports System.ComponentModel Imports System.ComponentModel.Design Imports System.Drawing Imports System.Drawing.Design Imports System.Windows.Forms ' Component that adds a "Text" data format ToolboxItemCreatorCallback ' to the Toolbox that creates a custom ToolboxItem that ' creates a TextBox containing the text data. <System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.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 Not (Value Is 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 Not (ts Is 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 Not (ts Is 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 formats As String() = CType(serializedObject, System.Windows.Forms.DataObject).GetFormats() If CType(serializedObject, System.Windows.Forms.DataObject).GetDataPresent("System.String", True) Then Return New TextToolboxItem(CStr(CType(serializedObject, System.Windows.Forms.DataObject).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. <System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.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. <System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.Demand, Name:="FullTrust")> _ Protected Overrides Function CreateComponentsCore(ByVal host As System.ComponentModel.Design.IDesignerHost) As System.ComponentModel.IComponent() Dim textbox As System.Windows.Forms.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
using System; using System.ComponentModel; using System.ComponentModel.Design; using System.Drawing; using System.Drawing.Design; using System.Windows.Forms; namespace TextDataTextBoxComponent { // Component that adds a "Text" data format ToolboxItemCreatorCallback // to the Toolbox that creates a custom ToolboxItem that // creates a TextBox containing the text data. [System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name = "FullTrust")] public class TextDataTextBoxComponent : System.ComponentModel.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) { string[] formats = ((System.Windows.Forms.DataObject)serializedObject).GetFormats(); if( ((System.Windows.Forms.DataObject)serializedObject).GetDataPresent("System.String", true) ) return new TextToolboxItem( (string)((System.Windows.Forms.DataObject)serializedObject).GetData("System.String", true) ); 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. [System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name = "FullTrust")] public class TextToolboxItem : System.Drawing.Design.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. [System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name="FullTrust")] protected override System.ComponentModel.IComponent[] CreateComponentsCore(System.ComponentModel.Design.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; } } }
#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 System::Drawing::Design::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<System::ComponentModel::IComponent^>^ CreateComponentsCore( System::ComponentModel::Design::IDesignerHost^ host ) override { System::Windows::Forms::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<System::ComponentModel::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 that creates a custom ToolboxItem that // creates a TextBox containing the text data. public ref class TextDataTextBoxComponent: public System::ComponentModel::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 ) { array<String^>^formats = (dynamic_cast<System::Windows::Forms::DataObject^>(serializedObject))->GetFormats(); if ( (dynamic_cast<System::Windows::Forms::DataObject^>(serializedObject))->GetDataPresent( "System::String", true ) ) return gcnew TextToolboxItem( dynamic_cast<String^>((dynamic_cast<System::Windows::Forms::DataObject^>(serializedObject))->GetData( "System::String", true )) ); return nullptr; } public: ~TextDataTextBoxComponent() { if ( creatorAdded ) RemoveTextTextBoxCreator(); } }; }
package TextDataTextBoxComponent; import System.*; import System.ComponentModel.*; import System.ComponentModel.Design.*; import System.Drawing.*; import System.Drawing.Design.*; import System.Windows.Forms.*; // Component that adds a "Text" data format ToolboxItemCreatorCallback // to the Toolbox that creates a custom ToolboxItem that // creates a TextBox containing the text data. public class TextDataTextBoxComponent extends System.ComponentModel.Component { private boolean creatorAdded = false; private IToolboxService ts; public TextDataTextBoxComponent() { } //TextDataTextBoxComponent // ISite override to register TextBox creator /** @property */ public System.ComponentModel.ISite get_Site() { return super.get_Site(); } //get_Site /** @property */ public void set_Site(System.ComponentModel.ISite value) { if (value != null) { super.set_Site(value); if (!(creatorAdded)) { AddTextTextBoxCreator(); } } else { if (creatorAdded) { RemoveTextTextBoxCreator(); } super.set_Site(value); } } //set_Site // 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(IToolboxService.class.ToType()); if (ts != null) { ToolboxItemCreatorCallback textCreator = new ToolboxItemCreatorCallback(this.CreateTextBoxForText); try { ts.AddCreator(textCreator, "Text", (IDesignerHost)GetService(IDesignerHost.class.ToType())); creatorAdded = true; } catch (System.Exception ex) { MessageBox.Show(ex.ToString(), "Exception Information"); } } } //AddTextTextBoxCreator // Removes any "Text" data format creator from the toolbox. private void RemoveTextTextBoxCreator() { if (ts != null) { ts.RemoveCreator("Text", (IDesignerHost)GetService(IDesignerHost.class.ToType())); creatorAdded = false; } } //RemoveTextTextBoxCreator // ToolboxItemCreatorCallback delegate format method to create // the toolbox item. private ToolboxItem CreateTextBoxForText(Object serializedObject , String format) { String formats[] = ((System.Windows.Forms.DataObject)serializedObject).GetFormats(); if (((System.Windows.Forms.DataObject)serializedObject). GetDataPresent("System.String", true)) { return new TextToolboxItem((String) (((System.Windows.Forms.DataObject)serializedObject). GetData("System.String", true))); } return null; } //CreateTextBoxForText protected void Dispose(boolean disposing) { if (creatorAdded) { RemoveTextTextBoxCreator(); } } //Dispose } //TextDataTextBoxComponent // Custom toolbox item creates a TextBox and sets its Text property // to the constructor-specified text. public class TextToolboxItem extends System.Drawing.Design.ToolboxItem { private String text; /** @delegate */ private delegate void SetTextMethodHandler(Control c, String text); /** @attribute System.Security.Permissions.PermissionSet( System.Security.Permissions.SecurityAction.Demand, Name = "FullTrust") */ public TextToolboxItem(String text) { this.text = text; } //TextToolboxItem // ToolboxItem.CreateComponentsCore override to create the TextBox // and link a method to set its Text property. /** @attribute System.Security.Permissions.PermissionSet( System.Security.Permissions.SecurityAction.Demand, Name = "FullTrust") */ protected System.ComponentModel.IComponent[] CreateComponentsCore( System.ComponentModel.Design.IDesignerHost host) { System.Windows.Forms.TextBox textbox = (TextBox)host.CreateComponent(TextBox.class.ToType()); // 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 = (Control)host.get_RootComponent(); c.BeginInvoke(new SetTextMethodHandler(OnSetText), new Object[] { textbox, text }); return new System.ComponentModel.IComponent[] { textbox }; } //CreateComponentsCore // Method to set the text property of a TextBox after it is initialized. private void OnSetText(Control c, String text) { c.set_Text(text); } //OnSetText } //TextToolboxItem

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


IToolboxService プロパティ

名前 | 説明 | |
---|---|---|
![]() | CategoryNames | 現在ツールボックスにあるすべてのツール カテゴリの名前を取得します。 |
![]() | SelectedCategory | ツールボックスで現在選択されているツール カテゴリの名前を取得または設定します。 |

IToolboxService メソッド

名前 | 説明 | |
---|---|---|
![]() | AddCreator | オーバーロードされます。 指定したデータ形式のツールボックス アイテム クリエータを新規に追加します。 |
![]() | AddLinkedToolboxItem | オーバーロードされます。 プロジェクト リンク済みのツールボックス項目をツールボックスに追加します。 |
![]() | AddToolboxItem | オーバーロードされます。 指定したツールボックス項目をツールボックスに追加します。 |
![]() | DeserializeToolboxItem | オーバーロードされます。 シリアル化形式で、ツールボックス項目を表す指定したオブジェクトからツールボックス項目を取得します。 |
![]() | GetSelectedToolboxItem | オーバーロードされます。 現在選択されているツールボックス項目を取得します。 |
![]() | GetToolboxItems | オーバーロードされます。 ツールボックスからツールボックス項目のコレクションを取得します。 |
![]() | IsSupported | オーバーロードされます。 シリアル化ツールボックス項目を表す指定したオブジェクトが、指定したデザイナ ホストで使用できるかどうかを示す値を取得します。 |
![]() | IsToolboxItem | オーバーロードされます。 指定したオブジェクトがシリアル化ツールボックス項目かどうかを示す値を取得します。 |
![]() | Refresh | ツールボックス項目の状態を更新します。 |
![]() | RemoveCreator | オーバーロードされます。 以前に追加した、ツールボックス アイテム クリエータを削除します。 |
![]() | RemoveToolboxItem | オーバーロードされます。 ツールボックスから、指定したツールボックス項目を削除します。 |
![]() | SelectedToolboxItemUsed | 選択したツールが使用されたことをツールボックス サービスに通知します。 |
![]() | SerializeToolboxItem | 指定したツールボックス項目を表すシリアル化オブジェクトを取得します。 |
![]() | SetCursor | 現在選択されているツールを表すカーソルに、現在のアプリケーションのカーソルを設定します。 |
![]() | SetSelectedToolboxItem | 指定したツールボックス項目を選択します。 |

IToolboxService メンバ
開発環境でツールボックスの管理とクエリを行うメソッドとプロパティを提供します。
IToolboxService データ型で公開されるメンバを以下の表に示します。

名前 | 説明 | |
---|---|---|
![]() | CategoryNames | 現在ツールボックスにあるすべてのツール カテゴリの名前を取得します。 |
![]() | SelectedCategory | ツールボックスで現在選択されているツール カテゴリの名前を取得または設定します。 |

名前 | 説明 | |
---|---|---|
![]() | AddCreator | オーバーロードされます。 指定したデータ形式のツールボックス アイテム クリエータを新規に追加します。 |
![]() | AddLinkedToolboxItem | オーバーロードされます。 プロジェクト リンク済みのツールボックス項目をツールボックスに追加します。 |
![]() | AddToolboxItem | オーバーロードされます。 指定したツールボックス項目をツールボックスに追加します。 |
![]() | DeserializeToolboxItem | オーバーロードされます。 シリアル化形式で、ツールボックス項目を表す指定したオブジェクトからツールボックス項目を取得します。 |
![]() | GetSelectedToolboxItem | オーバーロードされます。 現在選択されているツールボックス項目を取得します。 |
![]() | GetToolboxItems | オーバーロードされます。 ツールボックスからツールボックス項目のコレクションを取得します。 |
![]() | IsSupported | オーバーロードされます。 シリアル化ツールボックス項目を表す指定したオブジェクトが、指定したデザイナ ホストで使用できるかどうかを示す値を取得します。 |
![]() | IsToolboxItem | オーバーロードされます。 指定したオブジェクトがシリアル化ツールボックス項目かどうかを示す値を取得します。 |
![]() | Refresh | ツールボックス項目の状態を更新します。 |
![]() | RemoveCreator | オーバーロードされます。 以前に追加した、ツールボックス アイテム クリエータを削除します。 |
![]() | RemoveToolboxItem | オーバーロードされます。 ツールボックスから、指定したツールボックス項目を削除します。 |
![]() | SelectedToolboxItemUsed | 選択したツールが使用されたことをツールボックス サービスに通知します。 |
![]() | SerializeToolboxItem | 指定したツールボックス項目を表すシリアル化オブジェクトを取得します。 |
![]() | SetCursor | 現在選択されているツールを表すカーソルに、現在のアプリケーションのカーソルを設定します。 |
![]() | SetSelectedToolboxItem | 指定したツールボックス項目を選択します。 |

- IToolboxServiceのページへのリンク