次の方法で共有


Control.CreateGraphics メソッド

コントロールの Graphics オブジェクトを作成します。

Public Function CreateGraphics() As Graphics
[C#]
public Graphics CreateGraphics();
[C++]
public: Graphics* CreateGraphics();
[JScript]
public function CreateGraphics() : Graphics;

戻り値

コントロールの Graphics オブジェクト。

解説

返された Graphics オブジェクトは、必要がなくなった時点で、 Dispose メソッドを呼び出して破棄する必要があります。 Graphics オブジェクトは、現在のウィンドウのメッセージの存続期間だけ有効です。

メモ   スレッドから安全に呼び出される 4 つのメソッド、 InvokeBeginInvokeEndInvoke 、および CreateGraphics がコントロール上にあります。その他のすべてのメソッドの呼び出しについては、Invoke メソッドの 1 つを使用して、その呼び出しをコントロールのスレッドにマーシャリングする必要があります。

使用例

[Visual Basic, C#, C++] 指定したコントロールで書式設定されたテキストを使用するように、そのコントロールのサイズを変更する例を次に示します。書式設定されたテキストは、コントロールに割り当てられた Font がテキストに適用されている Text プロパティです。この例では AutoSizeControl メソッドにも、コントロールのすべての端に適用する埋め込みを表す textPadding パラメータがあります。埋め込みが均等に表示されるようにするには、テキストを ContentAlignment.MiddleCenter 値に揃えて配置します (コントロールがこれをサポートしている場合)。

 
Private Sub AutoSizeControl(control As Control, textPadding As Integer)
   ' Create a Graphics object for the Control.
   Dim g As Graphics = control.CreateGraphics()
   
   ' Get the Size needed to accommodate the formatted Text.
   Dim preferredSize As Size = g.MeasureString( _
     control.Text, control.Font).ToSize()
   
   ' Pad the text and resize the control.
   control.ClientSize = New Size( _
     preferredSize.Width + textPadding * 2, _
     preferredSize.Height + textPadding * 2)
   
   ' Clean up the Graphics object.
   g.Dispose()
End Sub

[C#] 
private void AutoSizeControl(Control control, int textPadding)
{
   // Create a Graphics object for the Control.
   Graphics g = control.CreateGraphics();

   // Get the Size needed to accommodate the formatted Text.
   Size preferredSize = g.MeasureString(
      control.Text, control.Font).ToSize();

   // Pad the text and resize the control.
   control.ClientSize = new Size(
      preferredSize.Width + (textPadding * 2), 
      preferredSize.Height+(textPadding * 2) );

   // Clean up the Graphics object.
   g.Dispose();
}

[C++] 
private:
    void AutoSizeControl(Control* control, int textPadding)
    {
        // Create a Graphics object for the Control.
        Graphics* g = control->CreateGraphics();

        // Get the Size needed to accommodate the formatted Text.
        System::Drawing::Size preferredSize = g->MeasureString(
            control->Text, control->Font).ToSize();

        // Pad the text and resize the control.
        control->ClientSize = System::Drawing::Size(
            preferredSize.Width + (textPadding * 2), 
            preferredSize.Height+(textPadding * 2) );

        // Clean up the Graphics object.
        g->Dispose();
    }

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

必要条件

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

.NET Framework セキュリティ:

参照

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