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 つのメソッド、 Invoke 、 BeginInvoke 、 EndInvoke 、および 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 セキュリティ:
- UIPermission (セーフ サブウィンドウでこのメソッドを呼び出すために必要なアクセス許可) UIPermissionWindow.SafeSubWindows (関連する列挙体)
参照
Control クラス | Control メンバ | System.Windows.Forms 名前空間 | Graphics