Export (0) Print
Expand All

CategoryNameCollection Class

Represents a collection of category name strings.

For a list of all members of this type, see CategoryNameCollection Members.

System.Object
   System.Collections.ReadOnlyCollectionBase
      System.Drawing.Design.CategoryNameCollection

[Visual Basic]
NotInheritable Public Class CategoryNameCollection
   Inherits ReadOnlyCollectionBase
[C#]
public sealed class CategoryNameCollection : ReadOnlyCollectionBase
[C++]
public __gc __sealed class CategoryNameCollection : public
   ReadOnlyCollectionBase
[JScript]
public class CategoryNameCollection extends ReadOnlyCollectionBase

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Remarks

This collection is used to store collections of toolbox category names.

Example

[Visual Basic, C#, C++] The following code example attempts to retrieve the IToolboxService when the control is sited in design mode. If the IToolboxService is retrieved, the code gets the names of each toolbox category and draws each name on the surface of the control.

[Visual Basic] 
Imports System
Imports System.Collections
Imports System.ComponentModel
Imports System.ComponentModel.Design
Imports System.Drawing
Imports System.Drawing.Design
Imports System.Data
Imports System.Windows.Forms

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 Not (MyBase.Site Is Nothing) Then
                toolboxService = CType(Me.GetService(GetType(IToolboxService)), IToolboxService)
                ' If an IToolboxService was located, update the category list.
                If Not (toolboxService Is 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 Not (categoryNames Is 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

[C#] 
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));                
            }            
        }
    }    
}

[C++] 
#using <mscorlib.dll>
#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 __gc class ToolboxCategoryNamesControl : public 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 = S"Category Names Display Control";
      this->Size =  System::Drawing::Size(264, 200);
   }

   // Obtain or reset IToolboxService* reference on each siting of control.
   __property System::ComponentModel::ISite* get_Site() {
      return UserControl::get_Site();
   }
   __property void set_Site(System::ComponentModel::ISite* value) {
      UserControl::set_Site( value );

      // If the component was sited, attempt to obtain
      // an IToolboxService* instance.
      if (UserControl::Site != 0) {
         toolboxService = dynamic_cast<IToolboxService*>(this->GetService(__typeof(IToolboxService)));
         // If an IToolboxService* was located, update the category list.
         if (toolboxService != 0)
            categoryNames = toolboxService->CategoryNames;
      } else toolboxService = 0;
   }

protected:
   void OnPaint(System::Windows::Forms::PaintEventArgs* e) {
      if (categoryNames != 0) {
         e->Graphics->DrawString(S"IToolboxService category names list:",
            new System::Drawing::Font(S"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->Item[i],
            new System::Drawing::Font(S"Arial", 8), Brushes::Black, (float)10, (float)24+(10*i));
      }
   }
};
}

[JScript] No example is available for JScript. To view a Visual Basic, C#, or C++ example, click the Language Filter button Language Filter in the upper-left corner of the page.

Requirements

Namespace: System.Drawing.Design

Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family

Assembly: System.Drawing (in System.Drawing.dll)

See Also

CategoryNameCollection Members | System.Drawing.Design Namespace | IToolboxService

Show:
© 2015 Microsoft