ToolboxItemFilterAttribute Osztály
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Megadja az eszközkészletelemhez használandó szűrősztringet és szűrőtípust.
public ref class ToolboxItemFilterAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=true, Inherited=true)]
public sealed class ToolboxItemFilterAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=true, Inherited=true)]
[System.Serializable]
public sealed class ToolboxItemFilterAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=true, Inherited=true)>]
type ToolboxItemFilterAttribute = class
inherit Attribute
[<System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=true, Inherited=true)>]
[<System.Serializable>]
type ToolboxItemFilterAttribute = class
inherit Attribute
Public NotInheritable Class ToolboxItemFilterAttribute
Inherits Attribute
- Öröklődés
- Attribútumok
Példák
Az alábbi példakód bemutatja, hogyan alkalmazható a ToolboxItemFilterAttribute.
#using <System.Drawing.dll>
#using <System.dll>
#using <System.Design.dll>
#using <System.Windows.Forms.dll>
using namespace System;
using namespace System::Collections;
using namespace System::ComponentModel;
using namespace System::ComponentModel::Design;
using namespace System::Diagnostics;
using namespace System::Drawing;
using namespace System::Drawing::Design;
using namespace System::Windows::Forms;
using namespace System::Windows::Forms::Design;
// This example contains an IRootDesigner that implements the IToolboxUser interface.
// This example demonstrates how to enable the GetToolSupported method of an IToolboxUser
// designer in order to disable specific toolbox items, and how to respond to the
// invocation of a ToolboxItem in the ToolPicked method of an IToolboxUser implementation.
public ref class SampleRootDesigner;
// The following attribute associates the SampleRootDesigner with this example component.
[DesignerAttribute(__typeof(SampleRootDesigner),__typeof(IRootDesigner))]
public ref class RootDesignedComponent: public Control{};
// This example component class demonstrates the associated IRootDesigner which
// implements the IToolboxUser interface. When designer view is invoked, Visual
// Studio .NET attempts to display a design mode view for the class at the top
// of a code file. This can sometimes fail when the class is one of multiple types
// in a code file, and has a DesignerAttribute associating it with an IRootDesigner.
// Placing a derived class at the top of the code file solves this problem. A
// derived class is not typically needed for this reason, except that placing the
// RootDesignedComponent class in another file is not a simple solution for a code
// example that is packaged in one segment of code.
public ref class RootViewSampleComponent: public RootDesignedComponent{};
// This example IRootDesigner implements the IToolboxUser interface and provides a
// Windows Forms view technology view for its associated component using an internal
// Control type.
// The following ToolboxItemFilterAttribute enables the GetToolSupported method of this
// IToolboxUser designer to be queried to check for whether to enable or disable all
// ToolboxItems which create any components whose type name begins with "System.Windows.Forms".
[ToolboxItemFilterAttribute(S"System.Windows.Forms",ToolboxItemFilterType::Custom)]
public ref class SampleRootDesigner: public ParentControlDesigner, public IRootDesigner, public IToolboxUser
{
public private:
ref class RootDesignerView;
private:
// This field is a custom Control type named RootDesignerView. This field references
// a control that is shown in the design mode document window.
RootDesignerView^ view;
// This string array contains type names of components that should not be added to
// the component managed by this designer from the Toolbox. Any ToolboxItems whose
// type name matches a type name in this array will be marked disabled according to
// the signal returned by the IToolboxUser.GetToolSupported method of this designer.
array<String^>^blockedTypeNames;
public:
SampleRootDesigner()
{
array<String^>^tempTypeNames = {"System.Windows.Forms.ListBox","System.Windows.Forms.GroupBox"};
blockedTypeNames = tempTypeNames;
}
private:
property array<ViewTechnology>^ SupportedTechnologies
{
// IRootDesigner.SupportedTechnologies is a required override for an IRootDesigner.
// This designer provides a display using the Windows Forms view technology.
array<ViewTechnology>^ IRootDesigner::get()
{
ViewTechnology temp0[] = {ViewTechnology::WindowsForms};
return temp0;
}
}
// This method returns an object that provides the view for this root designer.
Object^ IRootDesigner::GetView( ViewTechnology technology )
{
// If the design environment requests a view technology other than Windows
// Forms, this method throws an Argument Exception.
if ( technology != ViewTechnology::WindowsForms )
throw gcnew ArgumentException( "An unsupported view technology was requested","Unsupported view technology." );
// Creates the view object if it has not yet been initialized.
if ( view == nullptr )
view = gcnew RootDesignerView( this );
return view;
}
// This method can signal whether to enable or disable the specified
// ToolboxItem when the component associated with this designer is selected.
bool IToolboxUser::GetToolSupported( ToolboxItem^ tool )
{
// Search the blocked type names array for the type name of the tool
// for which support for is being tested. Return false to indicate the
// tool should be disabled when the associated component is selected.
for ( int i = 0; i < blockedTypeNames->Length; i++ )
if ( tool->TypeName == blockedTypeNames[ i ] )
return false;
// Return true to indicate support for the tool, if the type name of the
// tool is not located in the blockedTypeNames string array.
return true;
}
// This method can perform behavior when the specified tool has been invoked.
// Invocation of a ToolboxItem typically creates a component or components,
// and adds any created components to the associated component.
void IToolboxUser::ToolPicked( ToolboxItem^ /*tool*/ ){}
public private:
// This control provides a Windows Forms view technology view object that
// provides a display for the SampleRootDesigner.
[DesignerAttribute(__typeof(ParentControlDesigner),__typeof(IDesigner))]
ref class RootDesignerView: public Control
{
private:
// This field stores a reference to a designer.
IDesigner^ m_designer;
public:
RootDesignerView( IDesigner^ designer )
{
// Perform basic control initialization.
m_designer = designer;
BackColor = Color::Blue;
Font = gcnew System::Drawing::Font( Font->FontFamily->Name,24.0f );
}
protected:
// This method is called to draw the view for the SampleRootDesigner.
void OnPaint( PaintEventArgs^ pe )
{
Control::OnPaint( pe );
// Draw the name of the component in large letters.
pe->Graphics->DrawString( m_designer->Component->Site->Name, Font, Brushes::Yellow, ClientRectangle );
}
};
};
using System;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Drawing;
using System.Drawing.Design;
using System.Windows.Forms;
using System.Windows.Forms.Design;
// This example contains an IRootDesigner that implements the IToolboxUser interface.
// This example demonstrates how to enable the GetToolSupported method of an IToolboxUser
// designer in order to disable specific toolbox items, and how to respond to the
// invocation of a ToolboxItem in the ToolPicked method of an IToolboxUser implementation.
namespace IToolboxUserExample;
// This example component class demonstrates the associated IRootDesigner which
// implements the IToolboxUser interface. When designer view is invoked, Visual
// Studio .NET attempts to display a design mode view for the class at the top
// of a code file. This can sometimes fail when the class is one of multiple types
// in a code file, and has a DesignerAttribute associating it with an IRootDesigner.
// Placing a derived class at the top of the code file solves this problem. A
// derived class is not typically needed for this reason, except that placing the
// RootDesignedComponent class in another file is not a simple solution for a code
// example that is packaged in one segment of code.
public class RootViewSampleComponent : RootDesignedComponent;
// The following attribute associates the SampleRootDesigner with this example component.
[Designer(typeof(SampleRootDesigner), typeof(IRootDesigner))]
public class RootDesignedComponent : Control;
// This example IRootDesigner implements the IToolboxUser interface and provides a
// Windows Forms view technology view for its associated component using an internal
// Control type.
// The following ToolboxItemFilterAttribute enables the GetToolSupported method of this
// IToolboxUser designer to be queried to check for whether to enable or disable all
// ToolboxItems which create any components whose type name begins with "System.Windows.Forms".
[ToolboxItemFilter("System.Windows.Forms", ToolboxItemFilterType.Custom)]
public class SampleRootDesigner : ParentControlDesigner, IRootDesigner, IToolboxUser
{
// This field is a custom Control type named RootDesignerView. This field references
// a control that is shown in the design mode document window.
RootDesignerView view;
// This string array contains type names of components that should not be added to
// the component managed by this designer from the Toolbox. Any ToolboxItems whose
// type name matches a type name in this array will be marked disabled according to
// the signal returned by the IToolboxUser.GetToolSupported method of this designer.
readonly string[] blockedTypeNames =
[
"System.Windows.Forms.ListBox",
"System.Windows.Forms.GroupBox"
];
// IRootDesigner.SupportedTechnologies is a required override for an IRootDesigner.
// This designer provides a display using the Windows Forms view technology.
ViewTechnology[] IRootDesigner.SupportedTechnologies => [ViewTechnology.Default];
// This method returns an object that provides the view for this root designer.
object IRootDesigner.GetView(ViewTechnology technology)
{
// If the design environment requests a view technology other than Windows
// Forms, this method throws an Argument Exception.
if (technology != ViewTechnology.Default)
{
throw new ArgumentException("An unsupported view technology was requested",
nameof(technology));
}
// Creates the view object if it has not yet been initialized.
view ??= new RootDesignerView(this);
return view;
}
// This method can signal whether to enable or disable the specified
// ToolboxItem when the component associated with this designer is selected.
bool IToolboxUser.GetToolSupported(ToolboxItem tool)
{
// Search the blocked type names array for the type name of the tool
// for which support for is being tested. Return false to indicate the
// tool should be disabled when the associated component is selected.
for (int i = 0; i < blockedTypeNames.Length; i++)
{
if (tool.TypeName == blockedTypeNames[i])
{
return false;
}
}
// Return true to indicate support for the tool, if the type name of the
// tool is not located in the blockedTypeNames string array.
return true;
}
// This method can perform behavior when the specified tool has been invoked.
// Invocation of a ToolboxItem typically creates a component or components,
// and adds any created components to the associated component.
void IToolboxUser.ToolPicked(ToolboxItem tool)
{
}
// This control provides a Windows Forms view technology view object that
// provides a display for the SampleRootDesigner.
[Designer(typeof(ParentControlDesigner), typeof(IDesigner))]
internal class RootDesignerView : Control
{
// This field stores a reference to a designer.
readonly IDesigner m_designer;
public RootDesignerView(IDesigner designer)
{
// Perform basic control initialization.
m_designer = designer;
BackColor = Color.Blue;
Font = new Font(Font.FontFamily.Name, 24.0f);
}
// This method is called to draw the view for the SampleRootDesigner.
protected override void OnPaint(PaintEventArgs pe)
{
base.OnPaint(pe);
// Draw the name of the component in large letters.
pe.Graphics.DrawString(m_designer.Component.Site.Name, Font, Brushes.Yellow, ClientRectangle);
}
}
}
Imports System.Collections
Imports System.ComponentModel
Imports System.ComponentModel.Design
Imports System.Diagnostics
Imports System.Drawing
Imports System.Drawing.Design
Imports System.Windows.Forms
Imports System.Windows.Forms.Design
' This example contains an IRootDesigner that implements the IToolboxUser interface.
' This example demonstrates how to enable the GetToolSupported method of an IToolboxUser
' designer in order to disable specific toolbox items, and how to respond to the
' invocation of a ToolboxItem in the ToolPicked method of an IToolboxUser implementation.
' This example component class demonstrates the associated IRootDesigner which
' implements the IToolboxUser interface. When designer view is invoked, Visual
' Studio .NET attempts to display a design mode view for the class at the top
' of a code file. This can sometimes fail when the class is one of multiple types
' in a code file, and has a DesignerAttribute associating it with an IRootDesigner.
' Placing a derived class at the top of the code file solves this problem. A
' derived class is not typically needed for this reason, except that placing the
' RootDesignedComponent class in another file is not a simple solution for a code
' example that is packaged in one segment of code.
Public Class RootViewSampleComponent
Inherits RootDesignedComponent
End Class
' The following attribute associates the SampleRootDesigner with this example component.
<DesignerAttribute(GetType(SampleRootDesigner), GetType(IRootDesigner))> _
Public Class RootDesignedComponent
Inherits System.Windows.Forms.Control
End Class
' This example IRootDesigner implements the IToolboxUser interface and provides a
' Windows Forms view technology view for its associated component using an internal
' Control type.
' The following ToolboxItemFilterAttribute enables the GetToolSupported method of this
' IToolboxUser designer to be queried to check for whether to enable or disable all
' ToolboxItems which create any components whose type name begins with "System.Windows.Forms".
<ToolboxItemFilterAttribute("System.Windows.Forms", ToolboxItemFilterType.Custom)> _
<System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.Demand, Name:="FullTrust")> _
Public Class SampleRootDesigner
Inherits ParentControlDesigner
Implements IRootDesigner, IToolboxUser
' Member field of custom type RootDesignerView, a control that is shown in the
' design mode document window. This member is cached to reduce processing needed
' to recreate the view control on each call to GetView().
Private m_view As RootDesignerView
' This string array contains type names of components that should not be added to
' the component managed by this designer from the Toolbox. Any ToolboxItems whose
' type name matches a type name in this array will be marked disabled according to
' the signal returned by the IToolboxUser.GetToolSupported method of this designer.
Private blockedTypeNames As String() = {"System.Windows.Forms.ListBox", "System.Windows.Forms.GroupBox"}
' IRootDesigner.SupportedTechnologies is a required override for an IRootDesigner.
' This designer provides a display using the Windows Forms view technology.
ReadOnly Property SupportedTechnologies() As ViewTechnology() Implements IRootDesigner.SupportedTechnologies
Get
Return New ViewTechnology() {ViewTechnology.Default}
End Get
End Property
' This method returns an object that provides the view for this root designer.
Function GetView(ByVal technology As ViewTechnology) As Object Implements IRootDesigner.GetView
' If the design environment requests a view technology other than Windows
' Forms, this method throws an Argument Exception.
If technology <> ViewTechnology.Default Then
Throw New ArgumentException("An unsupported view technology was requested", "Unsupported view technology.")
End If
' Creates the view object if it has not yet been initialized.
If m_view Is Nothing Then
m_view = New RootDesignerView(Me)
End If
Return m_view
End Function
' This method can signal whether to enable or disable the specified
' ToolboxItem when the component associated with this designer is selected.
Function GetToolSupported(ByVal tool As ToolboxItem) As Boolean Implements IToolboxUser.GetToolSupported
' Search the blocked type names array for the type name of the tool
' for which support for is being tested. Return false to indicate the
' tool should be disabled when the associated component is selected.
Dim i As Integer
For i = 0 To blockedTypeNames.Length - 1
If tool.TypeName = blockedTypeNames(i) Then
Return False
End If
Next i ' Return true to indicate support for the tool, if the type name of the
' tool is not located in the blockedTypeNames string array.
Return True
End Function
' This method can perform behavior when the specified tool has been invoked.
' Invocation of a ToolboxItem typically creates a component or components,
' and adds any created components to the associated component.
Sub ToolPicked(ByVal tool As ToolboxItem) Implements IToolboxUser.ToolPicked
End Sub
' This control provides a Windows Forms view technology view object that
' provides a display for the SampleRootDesigner.
<DesignerAttribute(GetType(ParentControlDesigner), GetType(IDesigner))> _
Friend Class RootDesignerView
Inherits Control
' This field stores a reference to a designer.
Private m_designer As IDesigner
Public Sub New(ByVal designer As IDesigner)
' Performs basic control initialization.
m_designer = designer
BackColor = Color.Blue
Font = New Font(Font.FontFamily.Name, 24.0F)
End Sub
' This method is called to draw the view for the SampleRootDesigner.
Protected Overrides Sub OnPaint(ByVal pe As PaintEventArgs)
MyBase.OnPaint(pe)
' Draws the name of the component in large letters.
pe.Graphics.DrawString(m_designer.Component.Site.Name, Font, Brushes.Yellow, New RectangleF(ClientRectangle.X, ClientRectangle.Y, ClientRectangle.Width, ClientRectangle.Height))
End Sub
End Class
End Class
Megjegyzések
ToolboxItemFilterAttribute olyan mechanizmust biztosít, amellyel az eszközkészlet elemei csak olyan tervezők számára jelölhetők meg, amelyek egyező attribútummal vagy kóddal rendelkeznek, amely meghatározza, hogy az elem engedélyezve vagy letiltva legyen-e az eszközkészletben.
Egy ToolboxItemFilterAttribute szűrősztringre és szűrőtípusra alkalmazható ToolboxItem , amely meghatározza, hogy mikor engedélyezze vagy tiltsa le az elemet. ToolboxItemFilterAttribute a tervezőre is alkalmazható, hogy jelezze az eszközkészlet elemeinek engedélyezésére vonatkozó követelményeit. Ez az attribútumtípus azt jelzi, hogy egy eszközkészletelem csak akkor engedélyezhető, ha egy megfelelő szűrősztringet használó tervezőt használ. A szűrő típusát egy olyan tulajdonság jelzi a FilterType tulajdonságban ToolboxItemFilterType , amely jelzi, hogy egy szűrősztringet használ-e és hogyan, vagy egyéni kóddal határozza meg, hogy engedélyez-e egy elemet.
Konstruktorok
| Name | Description |
|---|---|
| ToolboxItemFilterAttribute(String, ToolboxItemFilterType) |
Inicializálja az osztály új példányát a ToolboxItemFilterAttribute megadott szűrősztring és típus használatával. |
| ToolboxItemFilterAttribute(String) |
Inicializálja az osztály új példányát ToolboxItemFilterAttribute a megadott szűrősztring használatával. |
Tulajdonságok
| Name | Description |
|---|---|
| FilterString |
Lekéri az eszközkészletelem szűrősztringét. |
| FilterType |
Lekéri a szűrő típusát. |
| TypeId |
Lekéri az attribútum típusazonosítóját. |
Metódusok
| Name | Description |
|---|---|
| Equals(Object) |
Olyan értéket ad vissza, amely jelzi, hogy ez a példány egyenlő-e egy adott objektummal. |
| GetHashCode() |
A példány kivonatkódját adja vissza. |
| GetType() |
Lekéri az Type aktuális példányt. (Öröklődés forrása Object) |
| IsDefaultAttribute() |
Ha egy származtatott osztályban felül van bírálva, azt jelzi, hogy a példány értéke-e a származtatott osztály alapértelmezett értéke. (Öröklődés forrása Attribute) |
| Match(Object) |
Azt jelzi, hogy a megadott objektum rendelkezik-e egyező szűrősztringgel. |
| MemberwiseClone() |
Az aktuális Objectpéldány sekély másolatát hozza létre. (Öröklődés forrása Object) |
| ToString() |
Az aktuális objektumot jelképező sztringet ad vissza. |
| ToString() |
Az aktuális objektumot jelképező sztringet ad vissza. (Öröklődés forrása Object) |
Explicit interfész-implementációk
| Name | Description |
|---|---|
| _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Névkészletet képez le a küldési azonosítók megfelelő készletére. (Öröklődés forrása Attribute) |
| _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Lekéri egy objektum típusadatait, amelyek a felület típusadatainak lekérésére használhatók. (Öröklődés forrása Attribute) |
| _Attribute.GetTypeInfoCount(UInt32) |
Lekéri az objektumok által biztosított típusinformációs felületek számát (0 vagy 1). (Öröklődés forrása Attribute) |
| _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Hozzáférést biztosít az objektumok által közzétett tulajdonságokhoz és metódusokhoz. (Öröklődés forrása Attribute) |