次の方法で共有


Control.Region プロパティ

コントロールに関連付けられたウィンドウ領域を取得または設定します。

Public Property Region As Region
[C#]
public Region Region {get; set;}
[C++]
public: __property Region* get_Region();public: __property void set_Region(Region*);
[JScript]
public function get Region() : Region;public function set Region(Region);

プロパティ値

コントロールに関連付けられたウィンドウ Region

解説

ウィンドウ領域は、オペレーティング システムで描画が許可されているウィンドウ内のピクセルの コレクションです。オペレーティング システムは、ウィンドウ領域の外側にある部分は表示しません。コントロールの領域の座標は、コントロールのクライアント領域に対する相対座標ではなく、コントロールの左上隅に対する相対座標です。

メモ   領域に含まれているピクセルのコレクションは連続していない場合があります。

使用例

[Visual Basic, C#] 丸ボタンを作成し、 System.Drawing.Control.Region プロパティを使用する方法を次のコード例に示します。この例を実行するには、roundButton という名前のボタンが配置されているフォームに、次のコードを貼り付けます。この例は、Paint イベントが、この例で定義されているイベント処理メソッドに関連付けられていることを前提としています。

 
' This method will change the square button to a circular button by 
' creating a new circle-shaped GraphicsPath object and setting it 
' to the RoundButton objects region.
Private Sub roundButton_Paint(ByVal sender As Object, _
    ByVal e As System.Windows.Forms.PaintEventArgs) Handles roundButton.Paint

    Dim buttonPath As New System.Drawing.Drawing2D.GraphicsPath

    ' Set a new rectangle to the same size as the button's 
    ' ClientRectangle property.
    Dim newRectangle As Rectangle = roundButton.ClientRectangle

    ' Decrease the size of the rectangle.
    newRectangle.Inflate(-10, -10)

    ' Draw the button's border.
    'e.Graphics.DrawEllipse(System.Drawing.Pens.Black, newRectangle)

    'Increase the size of the rectangle to include the border.
    newRectangle.Inflate(1, 1)

    ' Create a circle within the new rectangle.
    buttonPath.AddEllipse(newRectangle)
    e.Graphics.DrawPath(Pens.Black, buttonPath)
    ' Set the button's Region property to the newly created 
    ' circle region.
    roundButton.Region = New System.Drawing.Region(buttonPath)

End Sub

[C#] 
// This method will change the square button to a circular button by 
// creating a new circle-shaped GraphicsPath object and setting it 
// to the RoundButton objects region.
private void roundButton_Paint(object sender, 
    System.Windows.Forms.PaintEventArgs e)
{

    System.Drawing.Drawing2D.GraphicsPath buttonPath = 
        new System.Drawing.Drawing2D.GraphicsPath();

    // Set a new rectangle to the same size as the button's 
    // ClientRectangle property.
    System.Drawing.Rectangle newRectangle = roundButton.ClientRectangle;

    // Decrease the size of the rectangle.
    newRectangle.Inflate(-10, -10);
    
    // Draw the button's border.
    e.Graphics.DrawEllipse(System.Drawing.Pens.Black, newRectangle);

    // Increase the size of the rectangle to include the border.
    newRectangle.Inflate( 1,  1);

    // Create a circle within the new rectangle.
    buttonPath.AddEllipse(newRectangle);
            
    // Set the button's Region property to the newly created 
    // circle region.
    roundButton.Region = new System.Drawing.Region(buttonPath);

}

[C++, JScript] C++ および JScript のサンプルはありません。Visual Basic および C# のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

.NET Framework セキュリティ:

参照

Control クラス | Control メンバ | System.Windows.Forms 名前空間 | ClientRectangle | Bounds