Control.CreateGraphics (Método)

Crea el Graphics para el control.

Espacio de nombres: System.Windows.Forms
Ensamblado: System.Windows.Forms (en system.windows.forms.dll)

public Graphics CreateGraphics ()
public Graphics CreateGraphics ()
public function CreateGraphics () : Graphics
No aplicable.

Valor devuelto

Graphics del control.

El Graphics devuelto debe eliminarse mediante una llamada a su método Dispose cuando ya no sea necesario. El Graphics sólo será válido mientras permanezca el mensaje de la ventana actual.

NotaNota:

Además de la propiedad InvokeRequired, en un control hay cuatro métodos que son seguros para la ejecución de subprocesos: Invoke, BeginInvoke, EndInvoke y CreateGraphics si ya se ha creado el identificador del control. La llamada a CreateGraphics antes de la creación del identificador del control en un subproceso de fondo puede producir llamadas no válidas entre subprocesos. Para el resto de las llamadas a métodos, sería conveniente utilizar uno de los métodos de invocación para calcular las referencias de la llamada al subproceso del control.

En el siguiente ejemplo de código se cambia el tamaño del control especificado para que quepa el texto con formato. El texto con formato es la propiedad Text con la propiedad asignada del control Font que se aplica al texto. El método AutoSizeControl de este ejemplo también tiene un parámetro textPadding, que representa el relleno que se aplica a todos los bordes del control. Para que la apariencia del relleno sea uniforme, se alinea el texto con el valor MiddleCenter de System.Drawing.ContentAlignment si el control lo permite.

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();
}

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.get_Text(), control.
        get_Font()).ToSize();
    // Pad the text and resize the control.
    control.set_ClientSize(new Size(preferredSize.get_Width() 
        + textPadding * 2, preferredSize.get_Height() + textPadding * 2));
    // Clean up the Graphics object.
    g.Dispose();
} //AutoSizeControl

Windows 98, Windows 2000 Service Pack 4, Windows CE, Windows Millennium, Windows Mobile para Pocket PC, Windows Mobile para Smartphone, Windows Server 2003, Windows XP Media Center, Windows XP Professional x64, Windows XP SP2, Windows XP Starter

Microsoft .NET Framework 3.0 es compatible con Windows Vista, Microsoft Windows XP SP2 y Windows Server 2003 SP1.

.NET Framework

Compatible con: 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Compatible con: 2.0, 1.0
Mostrar: