GroupBoxRendererとは? わかりやすく解説

GroupBoxRenderer クラス

メモ : このクラスは、.NET Framework version 2.0 で新しく追加されたものです。

visual スタイルを使用して、または使用せずに、グループ ボックス コントロールをレンダリングするために使用されるメソッドを提供します。このクラスは継承できません。

名前空間: System.Windows.Forms
アセンブリ: System.Windows.Forms (system.windows.forms.dll 内)
構文構文

Public NotInheritable Class
 GroupBoxRenderer
Dim instance As GroupBoxRenderer
public sealed class GroupBoxRenderer
public ref class GroupBoxRenderer sealed
public final class GroupBoxRenderer
public final class GroupBoxRenderer
解説解説

GroupBoxRenderer クラスには、グループ ボックス コントロールをレンダリングするために使用できる一連の static メソッドが用意されています。コントロールのレンダリングとは、コントロールのユーザー インターフェイスを描画することです。グループ ボックスを描画するには、DrawGroupBox メソッドの 1 つを使用します。これらのメソッドは、さまざまなテキスト描画オプションを提供します。

オペレーティング システムで visual スタイルが有効にされており、現在のアプリケーションに visual スタイルが適用されている場合、DrawGroupBox は現在の visual スタイルでグループ ボックスを描画します。それ以外の場合、DrawGroupBox はクラシック Windows スタイルでグループ ボックスを描画します。この機能は、描画するカスタム コントロールをオペレーティング システムの現在の visual スタイル設定に自動的に一致させる必要がある場合に便利です。

このクラスは、System.Windows.Forms.VisualStyles.VisualStyleElement.Button.GroupBox クラスが公開する要素のいずれかに設定された System.Windows.Forms.VisualStyles.VisualStyleRenderer の機能をラップします。詳細については、「visual スタイルが使用されているコントロールのレンダリング」を参照してください。

Windows XP Home Edition, Windows XP Professional x64 Edition, Windows Server 2003 プラットフォームメモ : visual スタイルは、これらのプラットフォームでのみサポートされます。

使用例使用例

DrawGroupBox メソッドを使用するカスタム コントロールを作成し、visual スタイルが有効になっている場合に二重線の境界線が付いたグループ ボックスを描画する方法を次のコード例に示します。

Imports System
Imports System.Drawing
Imports System.Windows.Forms
Imports System.Windows.Forms.VisualStyles



Class Form1
    Inherits Form
    Private WithEvents button1 As
 Button
    
    
    Public Sub New() 
        Dim GroupBox1 As New
 CustomGroupBox()
        button1 = New Button()
        
        GroupBox1.Text = "Radio Button Display"
        Me.button1.Location = New System.Drawing.Point(185,
 231)
        Me.button1.Size = New System.Drawing.Size(105,
 23)
        Me.button1.Text = "Toggle Visual Styles"

        Controls.Add(GroupBox1)
        Me.Controls.Add(Me.button1)
        
        ' Add some radio buttons to test the CustomGroupBox.
        Dim count As Integer
 = 8
        Dim ButtonArray(count) As RadioButton
        Dim i As Integer
        For i = 0 To count
            ButtonArray(i) = New RadioButton()
            ButtonArray(i).Text = "Button " +(i +
 1).ToString()
            GroupBox1.Controls.Add(ButtonArray(i))
        Next i
        
        If Application.RenderWithVisualStyles Then
            Me.Text = "Visual Styles Enabled"
        Else
            Me.Text = "Visual Styles Disabled"
        End If
    
    End Sub 'New
     
    <STAThread()>  _
    Shared Sub Main() 
        ' If you do not call EnableVisualStyles below, then 
        ' GroupBoxRenderer automatically detects this and draws
        ' the group box without visual styles.
        Application.EnableVisualStyles()
        Application.Run(New Form1())
    
    End Sub 'Main
    
    
    ' Match application style and toggle visual styles off
    ' and on for the application.
    Private Sub button1_Click(ByVal
 sender As Object, ByVal
 e As EventArgs) _
        Handles button1.Click

        GroupBoxRenderer.RenderMatchingApplicationState = True

        Application.VisualStyleState = _
            Application.VisualStyleState Xor _
            VisualStyleState.ClientAndNonClientAreasEnabled

        If Application.RenderWithVisualStyles Then
            Me.Text = "Visual Styles Enabled"
        Else
            Me.Text = "Visual Styles Disabled"
        End If

    End Sub
End Class


Public Class CustomGroupBox
    Inherits Control
    Private innerRectangle As New
 Rectangle()
    Private state As GroupBoxState = GroupBoxState.Normal
    Private panel As New
 FlowLayoutPanel()
    
    
    Public Sub New() 
        Me.Size = New Size(200, 200)
        Me.Location = New Point(10, 10)
        Me.Controls.Add(panel)
        Me.Text = "CustomGroupBox"
        Me.Font = SystemFonts.IconTitleFont
        
        innerRectangle.X = ClientRectangle.X + 5
        innerRectangle.Y = ClientRectangle.Y + 15
        innerRectangle.Width = ClientRectangle.Width - 10
        innerRectangle.Height = ClientRectangle.Height - 20
        
        panel.FlowDirection = FlowDirection.TopDown
        panel.Location = New Point(innerRectangle.X + 5, innerRectangle.Y
 + 5)
        panel.Size = New Size(innerRectangle.Width - 10, innerRectangle.Height
 - 10)
    
    End Sub 'New
    
    
    ' Draw the group box in the current state.
    Protected Overrides Sub
 OnPaint(ByVal e As PaintEventArgs) 
        MyBase.OnPaint(e)
        
        GroupBoxRenderer.DrawGroupBox(e.Graphics, ClientRectangle, Me.Text,
 Me.Font, state)
        
        ' Draw an additional inner border if visual styles are enabled.
        If Application.RenderWithVisualStyles Then
            GroupBoxRenderer.DrawGroupBox(e.Graphics, innerRectangle, state)
        End If
    
    End Sub 'OnPaint
    
    ' Pass added controls to the internal FlowLayoutPanel.
    Protected Overrides Sub
 OnControlAdded(ByVal e As ControlEventArgs)
 
        MyBase.OnControlAdded(e)
        
        ' Ensure that you do not add the panel itself.
        If e.Control IsNot Me.panel Then
            Me.Controls.Remove(e.Control)
            panel.Controls.Add(e.Control)
        End If
    
    End Sub 'OnControlAdded
End Class 'CustomGroupBox
using System;
using System.Drawing;
using System.Windows.Forms;
using System.Windows.Forms.VisualStyles;

namespace GroupBoxRendererSample
{
    class Form1 : Form
    {
        private Button button1;
    
        public Form1()
            : base()
        {
            CustomGroupBox GroupBox1 = new CustomGroupBox();
            button1 = new Button();
             
            GroupBox1.Text = "Radio Button Display";
            this.button1.Location = new System.Drawing.Point(205,
 231);
            this.button1.Size = new System.Drawing.Size(105,
 23);
            this.button1.Text = "Toggle Visual Styles";
            this.button1.Click += new System.EventHandler(this.button1_Click);
            Controls.Add(GroupBox1);
            this.Controls.Add(this.button1);

            // Add some radio buttons to test the CustomGroupBox.
            int count = 8;
            RadioButton[] ButtonArray = new RadioButton[count];
            for (int i = 0; i < count; i++)
            {
                ButtonArray[i] = new RadioButton();
                ButtonArray[i].Text = "Button " + (i + 1).ToString();
                GroupBox1.Controls.Add(ButtonArray[i]);
            }

            if (Application.RenderWithVisualStyles)
                this.Text = "Visual Styles Enabled";
            else
                this.Text = "Visual Styles Disabled";
        }

        [STAThread]
        static void Main()
        {
            // If you do not call EnableVisualStyles below, then 
            // GroupBoxRenderer automatically detects this and draws
            // the group box without visual styles.
            Application.EnableVisualStyles();
            Application.Run(new Form1());
        }


    // Match application style and toggle visual styles off
    // and on for the application.
        private void button1_Click(object sender,
 EventArgs e)
        {
            GroupBoxRenderer.RenderMatchingApplicationState = true;
            Application.VisualStyleState = 
                Application.VisualStyleState ^ 
                VisualStyleState.ClientAndNonClientAreasEnabled;

          
            if (Application.RenderWithVisualStyles)
                this.Text = "Visual Styles Enabled";
            else
                this.Text = "Visual Styles Disabled";
        }
    }

    public class CustomGroupBox : Control
    {
        private Rectangle innerRectangle = new
 Rectangle();
        private GroupBoxState state = GroupBoxState.Normal;
        private FlowLayoutPanel panel = new
 FlowLayoutPanel();

        public CustomGroupBox()
            : base()
        {
            this.Size = new Size(200, 200);
            this.Location = new Point(10, 10);
            this.Controls.Add(panel);
            this.Text = "CustomGroupBox";
            this.Font = SystemFonts.IconTitleFont;

            innerRectangle.X = ClientRectangle.X + 5;
            innerRectangle.Y = ClientRectangle.Y + 15;
            innerRectangle.Width = ClientRectangle.Width - 10;
            innerRectangle.Height = ClientRectangle.Height - 20;

            panel.FlowDirection = FlowDirection.TopDown;
            panel.Location = new Point(innerRectangle.X + 5,
                innerRectangle.Y + 5);
            panel.Size = new Size(innerRectangle.Width - 10,
                innerRectangle.Height - 10);
        }

        // Draw the group box in the current state.
        protected override void OnPaint(PaintEventArgs
 e)
        {
            base.OnPaint(e);

            GroupBoxRenderer.DrawGroupBox(e.Graphics, ClientRectangle,
                this.Text, this.Font, state);

            // Draw an additional inner border if visual styles are
 enabled.
            if (Application.RenderWithVisualStyles)
            {
                GroupBoxRenderer.DrawGroupBox(e.Graphics, innerRectangle, state);
            }
        }

        // Pass added controls to the internal FlowLayoutPanel.
        protected override void OnControlAdded(ControlEventArgs
 e)
        {
            base.OnControlAdded(e);

            // Ensure that you do not add the panel itself.
            if (e.Control != this.panel)
            {
                this.Controls.Remove(e.Control);
                panel.Controls.Add(e.Control);
            }
        }
    }
}
#using <System.Drawing.dll>
#using <System.Windows.Forms.dll>
#using <System.dll>

using namespace System;
using namespace System::Drawing;
using namespace System::Windows::Forms;
using namespace System::Windows::Forms::VisualStyles;

namespace GroupBoxRendererSample
{
    public ref class CustomGroupBox : public
 Control
    {
    private:
        Rectangle innerRectangle;
    private:
        GroupBoxState state;
    private:
        FlowLayoutPanel^ panel;

    public:
        CustomGroupBox() : Control()
        {
            innerRectangle = Rectangle();
            state = GroupBoxState::Normal;
            panel = gcnew FlowLayoutPanel();

            this->Size = System::Drawing::Size(200, 200);
            this->Location = Point(10, 10);
            this->Controls->Add(panel);
            this->Text = "CustomGroupBox";
            this->Font = SystemFonts::IconTitleFont;

            innerRectangle.X = ClientRectangle.X + 5;
            innerRectangle.Y = ClientRectangle.Y + 15;
            innerRectangle.Width = ClientRectangle.Width - 10;
            innerRectangle.Height = ClientRectangle.Height - 20;

            panel->FlowDirection = FlowDirection::TopDown;
            panel->Location = Point(innerRectangle.X + 5,
                innerRectangle.Y + 5);
            panel->Size = System::Drawing::Size(innerRectangle.Width - 10,
                innerRectangle.Height - 10);
        }

        // Draw the group box in the current state.
    protected:
        virtual void OnPaint(PaintEventArgs^ e) override 
        {
            __super::OnPaint(e);

            GroupBoxRenderer::DrawGroupBox(e->Graphics, ClientRectangle,
                this->Text, this->Font,
 state);

            // Draw an additional inner border if visual styles are
 enabled.
            if (Application::RenderWithVisualStyles)
            {
                GroupBoxRenderer::DrawGroupBox(e->Graphics, innerRectangle,
                    state);
            }
        }

        // Pass added controls to the internal FlowLayoutPanel.
    protected:
        virtual void OnControlAdded(ControlEventArgs^ e) override
        {
            __super::OnControlAdded(e);

            // Ensure that you do not add the panel itself.
            if (e->Control != this->panel)
            {
                this->Controls->Remove(e->Control);
                panel->Controls->Add(e->Control);
            }
        }
    };

    ref class Form1 : public Form
    {
    public:
        Form1() : Form()
        {
            CustomGroupBox^ groupBox1 = gcnew CustomGroupBox();
            groupBox1->Text = "Radio Button Display";
            Controls->Add(groupBox1);

            // Add some radio buttons to test the CustomGroupBox.
            int count = 8;
            array<RadioButton^>^ buttonArray = 
                gcnew array<RadioButton^>(count);
            for (int i = 0; i < count; i++)
            {
                buttonArray[i] = gcnew RadioButton();
                buttonArray[i]->Text = "Button " + (i + 1).ToString();
                groupBox1->Controls->Add(buttonArray[i]);
            }

            if (Application::RenderWithVisualStyles)
            {
                this->Text = "Visual Styles Enabled";
            }
            else
            {
                this->Text = "Visual Styles Disabled";
            }
        }
    };
}

[STAThread]
int main()
{
    // If you do not call EnableVisualStyles below, then
    // GroupBoxRenderer automatically detects this and draws
    // the group box without visual styles.
    Application::EnableVisualStyles();
    Application::Run(gcnew GroupBoxRendererSample::Form1());
}
継承階層継承階層
System.Object
  System.Windows.Forms.GroupBoxRenderer
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
GroupBoxRenderer メンバ
System.Windows.Forms 名前空間
Application.EnableVisualStyles
Application.VisualStyleState プロパティ
System.Windows.Forms.VisualStyles.VisualStyleRenderer
System.Windows.Forms.VisualStyles.VisualStyleElement

GroupBoxRenderer プロパティ


パブリック プロパティパブリック プロパティ

参照参照

関連項目

GroupBoxRenderer クラス
System.Windows.Forms 名前空間
Application.EnableVisualStyles
Application.VisualStyleState プロパティ
System.Windows.Forms.VisualStyles.VisualStyleRenderer
System.Windows.Forms.VisualStyles.VisualStyleElement

GroupBoxRenderer メソッド


パブリック メソッドパブリック メソッド

プロテクト メソッドプロテクト メソッド
参照参照

関連項目

GroupBoxRenderer クラス
System.Windows.Forms 名前空間
Application.EnableVisualStyles
Application.VisualStyleState プロパティ
System.Windows.Forms.VisualStyles.VisualStyleRenderer
System.Windows.Forms.VisualStyles.VisualStyleElement

GroupBoxRenderer メンバ

visual スタイルを使用して、または使用せずに、グループ ボックス コントロールをレンダリングするために使用されるメソッドを提供します。このクラスは継承できません。

GroupBoxRenderer データ型で公開されるメンバを以下の表に示します。


パブリック プロパティパブリック プロパティ
パブリック メソッドパブリック メソッド
プロテクト メソッドプロテクト メソッド
参照参照

関連項目

GroupBoxRenderer クラス
System.Windows.Forms 名前空間
Application.EnableVisualStyles
Application.VisualStyleState プロパティ
System.Windows.Forms.VisualStyles.VisualStyleRenderer
System.Windows.Forms.VisualStyles.VisualStyleElement



英和和英テキスト翻訳

英語⇒日本語日本語⇒英語

辞書ショートカット

すべての辞書の索引

「GroupBoxRenderer」の関連用語

GroupBoxRendererのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



GroupBoxRendererのページの著作権

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2026 Microsoft.All rights reserved.

©2026 GRAS Group, Inc.RSS