GroupBoxRenderer クラス
アセンブリ: System.Windows.Forms (system.windows.forms.dll 内)


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.Windows.Forms.GroupBoxRenderer


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


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 メソッド

名前 | 説明 | |
---|---|---|
![]() | DrawGroupBox | オーバーロードされます。 グループ ボックス コントロールを描画します。 |
![]() | DrawParentBackground | 指定した領域にコントロールの親の背景を描画します。 |
![]() | Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 ( Object から継承されます。) |
![]() | GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 ( Object から継承されます。) |
![]() | GetType | 現在のインスタンスの Type を取得します。 ( Object から継承されます。) |
![]() | IsBackgroundPartiallyTransparent | グループ ボックスの背景の一部が半透明である (アルファ ブレンドされている) かどうかを示します。 |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。) |
![]() | ToString | 現在の Object を表す String を返します。 ( Object から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 ( Object から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 ( Object から継承されます。) |

関連項目
GroupBoxRenderer クラスSystem.Windows.Forms 名前空間
Application.EnableVisualStyles
Application.VisualStyleState プロパティ
System.Windows.Forms.VisualStyles.VisualStyleRenderer
System.Windows.Forms.VisualStyles.VisualStyleElement
GroupBoxRenderer メンバ
visual スタイルを使用して、または使用せずに、グループ ボックス コントロールをレンダリングするために使用されるメソッドを提供します。このクラスは継承できません。
GroupBoxRenderer データ型で公開されるメンバを以下の表に示します。


名前 | 説明 | |
---|---|---|
![]() | DrawGroupBox | オーバーロードされます。 グループ ボックス コントロールを描画します。 |
![]() | DrawParentBackground | 指定した領域にコントロールの親の背景を描画します。 |
![]() | Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 (Object から継承されます。) |
![]() | GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 (Object から継承されます。) |
![]() | GetType | 現在のインスタンスの Type を取得します。 (Object から継承されます。) |
![]() | IsBackgroundPartiallyTransparent | グループ ボックスの背景の一部が半透明である (アルファ ブレンドされている) かどうかを示します。 |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。) |
![]() | ToString | 現在の Object を表す String を返します。 (Object から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 (Object から継承されます。) |

関連項目
GroupBoxRenderer クラスSystem.Windows.Forms 名前空間
Application.EnableVisualStyles
Application.VisualStyleState プロパティ
System.Windows.Forms.VisualStyles.VisualStyleRenderer
System.Windows.Forms.VisualStyles.VisualStyleElement
- GroupBoxRendererのページへのリンク