CategoryNameCollection 类

定义

表示类别名称字符串的集合。

public ref class CategoryNameCollection sealed : System::Collections::ReadOnlyCollectionBase
public sealed class CategoryNameCollection : System.Collections.ReadOnlyCollectionBase
type CategoryNameCollection = class
    inherit ReadOnlyCollectionBase
Public NotInheritable Class CategoryNameCollection
Inherits ReadOnlyCollectionBase
继承
CategoryNameCollection

示例

下面的代码示例尝试在设计模式下设置控件时检索 IToolboxServiceIToolboxService如果检索到 ,代码将获取每个工具箱类别的名称,并在控件图面上绘制每个名称。

#using <System.Windows.Forms.dll>
#using <System.Data.dll>
#using <System.Drawing.dll>
#using <System.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::Windows::Forms;

namespace ToolboxCategoryNamesControl
{
   public ref class ToolboxCategoryNamesControl: public System::Windows::Forms::UserControl
   {
   private:
      System::Drawing::Design::IToolboxService^ toolboxService;
      System::Drawing::Design::CategoryNameCollection^ categoryNames;

   public:
      ToolboxCategoryNamesControl()
      {
         this->BackColor = System::Drawing::Color::Beige;
         this->Name = "Category Names Display Control";
         this->Size = System::Drawing::Size( 264, 200 );
      }

      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 )
                              categoryNames = toolboxService->CategoryNames;
            }
            else
                        toolboxService = nullptr;
         }
      }

   protected:
      [System::Security::Permissions::PermissionSetAttribute(System::Security::Permissions::SecurityAction::Demand, Name="FullTrust")]
      virtual void OnPaint( System::Windows::Forms::PaintEventArgs^ e ) override
      {
         if ( categoryNames != nullptr )
         {
            e->Graphics->DrawString( "IToolboxService category names list:", gcnew System::Drawing::Font( "Arial",9 ), Brushes::Black, 10, 10 );
            
            // categoryNames is a CategoryNameCollection obtained from
            // the IToolboxService*. CategoryNameCollection is a read-only
            // String* collection.
            // Output each category name in the CategoryNameCollection.
            for ( int i = 0; i < categoryNames->Count; i++ )
               e->Graphics->DrawString( categoryNames[ i ], gcnew System::Drawing::Font( "Arial",8 ), Brushes::Black, (float)10, (float)24 + (10 * i) );
         }
      }
   };
}
using System;
using System.Collections;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Drawing;
using System.Drawing.Design;
using System.Data;
using System.Windows.Forms;

namespace ToolboxCategoryNamesControl
{
    public class ToolboxCategoryNamesControl : System.Windows.Forms.UserControl
    {		
        private System.Drawing.Design.IToolboxService toolboxService;
        private System.Drawing.Design.CategoryNameCollection categoryNames;

        public ToolboxCategoryNamesControl()
        {
            this.BackColor = System.Drawing.Color.Beige;
            this.Name = "Category Names Display Control";
            this.Size = new System.Drawing.Size(264, 200);
        }

        // 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 )
                        categoryNames = toolboxService.CategoryNames;
                }
                else
                {
                    toolboxService = null;
                }
            }
        }

        protected override void OnPaint(System.Windows.Forms.PaintEventArgs e)
        {
            if( categoryNames != null )
            {
                e.Graphics.DrawString("IToolboxService category names list:", new Font("Arial", 9), Brushes.Black, 10, 10);
                // categoryNames is a CategoryNameCollection obtained from
                // the IToolboxService. CategoryNameCollection is a read-only
                // string collection.

                // Output each category name in the CategoryNameCollection.
                for( int i=0; i< categoryNames.Count; i++ )
                    e.Graphics.DrawString(categoryNames[i], new Font("Arial", 8), Brushes.Black, 10, 24+(10*i));
            }
        }
    }
}
Imports System.Collections
Imports System.ComponentModel
Imports System.ComponentModel.Design
Imports System.Drawing
Imports System.Drawing.Design
Imports System.Data
Imports System.Windows.Forms

<System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.Demand, Name:="FullTrust")> _
Public Class ToolboxCategoryNamesControl
    Inherits System.Windows.Forms.UserControl
    Private toolboxService As System.Drawing.Design.IToolboxService
    Private categoryNames As System.Drawing.Design.CategoryNameCollection

    Public Sub New()
        Me.BackColor = System.Drawing.Color.Beige
        Me.Name = "Category Names Display Control"
        Me.Size = New System.Drawing.Size(264, 200)
    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 (MyBase.Site IsNot Nothing) Then
                toolboxService = CType(Me.GetService(GetType(IToolboxService)), IToolboxService)
                ' If an IToolboxService was located, update the category list.
                If (toolboxService IsNot Nothing) Then
                    categoryNames = toolboxService.CategoryNames
                End If
            Else
                toolboxService = Nothing
            End If
        End Set
    End Property

    Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
        If (categoryNames IsNot Nothing) Then
            e.Graphics.DrawString("IToolboxService category names list:", New Font("Arial", 9), Brushes.Black, 10, 10)

            ' categoryNames is a CategoryNameCollection obtained from 
            ' the IToolboxService. CategoryNameCollection is a read-only 
            ' string collection.                                
            ' Output each category name in the CategoryNameCollection.                                                
            Dim i As Integer
            For i = 0 To categoryNames.Count - 1
                e.Graphics.DrawString(categoryNames(i), New Font("Arial", 8), Brushes.Black, 10, 24 + 10 * i)
            Next i
        End If
    End Sub

End Class

注解

此集合用于存储工具箱类别名称的集合。

构造函数

CategoryNameCollection(CategoryNameCollection)

使用指定的集合初始化 CategoryNameCollection 类的新实例。

CategoryNameCollection(String[])

使用指定的名称数组初始化 CategoryNameCollection 类的新实例。

属性

Count

获取 ReadOnlyCollectionBase 实例中包含的元素数。

(继承自 ReadOnlyCollectionBase)
InnerList

获取 ReadOnlyCollectionBase 实例中包含的元素的列表。

(继承自 ReadOnlyCollectionBase)
Item[Int32]

获取指定索引处的类别名称。

方法

Contains(String)

指示指定的类别是否包含在集合中。

CopyTo(String[], Int32)

将集合元素复制到指定索引处的指定数组。

Equals(Object)

确定指定对象是否等于当前对象。

(继承自 Object)
GetEnumerator()

返回循环访问 ReadOnlyCollectionBase 实例的枚举器。

(继承自 ReadOnlyCollectionBase)
GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetType()

获取当前实例的 Type

(继承自 Object)
IndexOf(String)

获取指定值的索引。

MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
ToString()

返回表示当前对象的字符串。

(继承自 Object)

显式接口实现

ICollection.CopyTo(Array, Int32)

从目标数组的指定索引处开始将整个 ReadOnlyCollectionBase 复制到兼容的一维 Array

(继承自 ReadOnlyCollectionBase)
ICollection.IsSynchronized

获取一个值,该值指示对 ReadOnlyCollectionBase 对象的访问是否同步(线程安全)。

(继承自 ReadOnlyCollectionBase)
ICollection.SyncRoot

获取一个对象,该对象可用于同步对 ReadOnlyCollectionBase 对象的访问。

(继承自 ReadOnlyCollectionBase)

扩展方法

Cast<TResult>(IEnumerable)

IEnumerable 的元素强制转换为指定的类型。

OfType<TResult>(IEnumerable)

根据指定类型筛选 IEnumerable 的元素。

AsParallel(IEnumerable)

启用查询的并行化。

AsQueryable(IEnumerable)

IEnumerable 转换为 IQueryable

适用于

另请参阅