Leer en inglés

Compartir a través de


DrawToolTipEventArgs Clase

Definición

Proporciona datos para el evento Draw.

C#
public class DrawToolTipEventArgs : EventArgs
Herencia
DrawToolTipEventArgs

Ejemplos

En el ejemplo de código siguiente se muestra cómo dibujar personalizado .ToolTip En el ejemplo se crea y ToolTip se asocia a tres Button controles ubicados en .Form En el ejemplo se establece la OwnerDraw propiedad en true y se controla el Draw evento. En el Draw controlador de eventos, ToolTip el elemento se dibuja de forma diferente en función del botón para el ToolTip que se muestra como se indica en la DrawToolTipEventArgs.AssociatedControl propiedad .

C#
using System;
using System.Drawing;
using System.Windows.Forms;
using System.Windows.Forms.VisualStyles;

namespace ToolTipExample
{
    // Form for the ToolTip example.
    public class ToolTipExampleForm : System.Windows.Forms.Form
    {
        private System.Windows.Forms.ToolTip toolTip1;
        private System.Windows.Forms.Button button1;
        private System.Windows.Forms.Button button2;
        private System.Windows.Forms.Button button3;

        public ToolTipExampleForm()
        {
            // Create the ToolTip and set initial values.
            this.toolTip1 = new System.Windows.Forms.ToolTip();
            this.toolTip1.AutoPopDelay = 5000;
            this.toolTip1.InitialDelay = 500;
            this.toolTip1.OwnerDraw = true;
            this.toolTip1.ReshowDelay = 10;
            this.toolTip1.Draw += new DrawToolTipEventHandler(this.toolTip1_Draw);
            this.toolTip1.Popup += new PopupEventHandler(toolTip1_Popup);

            // Create button1 and set initial values.
            this.button1 = new System.Windows.Forms.Button();
            this.button1.Location = new System.Drawing.Point(8, 8);
            this.button1.Text = "Button 1";
            this.toolTip1.SetToolTip(this.button1, "Button1 tip text");

            // Create button2 and set initial values.
            this.button2 = new System.Windows.Forms.Button();
            this.button2.Location = new System.Drawing.Point(8, 32);
            this.button2.Text = "Button 2";
            this.toolTip1.SetToolTip(this.button2, "Button2 tip text");

            // Create button3 and set initial values.
            this.button3 = new System.Windows.Forms.Button();
            this.button3.Location = new System.Drawing.Point(8, 56);
            this.button3.Text = "Button 3";
            this.toolTip1.SetToolTip(this.button3, "Button3 tip text");

            // Set up the Form.
            this.Controls.AddRange(new Control[] {
                this.button1, this.button2, this.button3
            });
            this.Text = "owner drawn ToolTip example";
        }

        // Clean up any resources being used.        
        protected override void Dispose(bool disposing)
        {
            if (disposing)
            {
                toolTip1.Dispose();
            }

            base.Dispose(disposing);
        }

        // The main entry point for the application.
        [STAThread]
        static void Main()
        {
            Application.Run(new ToolTipExampleForm());
        }

        // Determines the correct size for the button2 ToolTip.
        private void toolTip1_Popup(object sender, PopupEventArgs e)
        {
            if (e.AssociatedControl == button2)
            {
                using (Font f = new Font("Tahoma", 9))
                {
                    e.ToolTipSize = TextRenderer.MeasureText(
                        toolTip1.GetToolTip(e.AssociatedControl), f);
                }
            }
        }

        // Handles drawing the ToolTip.
        private void toolTip1_Draw(System.Object sender, 
            System.Windows.Forms.DrawToolTipEventArgs e)
        {
            // Draw the ToolTip differently depending on which 
            // control this ToolTip is for.
            // Draw a custom 3D border if the ToolTip is for button1.
            if (e.AssociatedControl == button1)
            {
                // Draw the standard background.
                e.DrawBackground();

                // Draw the custom border to appear 3-dimensional.
                e.Graphics.DrawLines(SystemPens.ControlLightLight, new Point[] {
                    new Point (0, e.Bounds.Height - 1), 
                    new Point (0, 0), 
                    new Point (e.Bounds.Width - 1, 0)
                });
                e.Graphics.DrawLines(SystemPens.ControlDarkDark, new Point[] {
                    new Point (0, e.Bounds.Height - 1), 
                    new Point (e.Bounds.Width - 1, e.Bounds.Height - 1), 
                    new Point (e.Bounds.Width - 1, 0)
                });

                // Specify custom text formatting flags.
                TextFormatFlags sf = TextFormatFlags.VerticalCenter |
                                     TextFormatFlags.HorizontalCenter |
                                     TextFormatFlags.NoFullWidthCharacterBreak;

                // Draw the standard text with customized formatting options.
                e.DrawText(sf);
            }
            // Draw a custom background and text if the ToolTip is for button2.
            else if (e.AssociatedControl == button2)
            {
                // Draw the custom background.
                e.Graphics.FillRectangle(SystemBrushes.ActiveCaption, e.Bounds);

                // Draw the standard border.
                e.DrawBorder();

                // Draw the custom text.
                // The using block will dispose the StringFormat automatically.
                using (StringFormat sf = new StringFormat())
                {
                    sf.Alignment = StringAlignment.Center;
                    sf.LineAlignment = StringAlignment.Center;
                    sf.HotkeyPrefix = System.Drawing.Text.HotkeyPrefix.None;
                    sf.FormatFlags = StringFormatFlags.NoWrap;
                    using (Font f = new Font("Tahoma", 9))
                    {
                        e.Graphics.DrawString(e.ToolTipText, f, 
                            SystemBrushes.ActiveCaptionText, e.Bounds, sf);
                    }
                }
            }
            // Draw the ToolTip using default values if the ToolTip is for button3.
            else if (e.AssociatedControl == button3)
            {
                e.DrawBackground();
                e.DrawBorder();
                e.DrawText();
            }
        }
    }
}

Comentarios

La ToolTip.Draw clase genera el ToolTip evento cuando ToolTip se dibuja y el valor de la ToolTip.OwnerDraw propiedad es true. El controlador de este evento recibe un parámetro de tipo DrawToolTipEventArgs. La DrawToolTipEventArgs clase contiene toda la información necesaria para pintar ToolTip, incluido el ToolTip texto, y Rectangleel objeto en el Graphics que se debe realizar el dibujo. Para personalizar el aspecto de la información sobre herramientas, use Rectangle para determinar los límites de la información sobre herramientas y el objeto para realizar el Graphics dibujo personalizado. Puede aumentar los límites de antes ToolTip de que se muestre controlando el Popup evento.

DrawToolTipEventArgs también admite la personalización parcial a través de los DrawBackgroundmétodos , DrawText y DrawBorder . Con estos métodos, puede dibujar partes de la información sobre herramientas al dejar las demás partes dibujadas de la manera estándar.

Constructores

Propiedades

AssociatedControl

Obtiene el control para el que se está dibujando el objeto ToolTip.

AssociatedWindow

Obtiene la ventana a la que está enlazado el objeto ToolTip.

Bounds

Obtiene el tamaño y la ubicación del control ToolTip que se va a dibujar.

Font

Obtiene la fuente usada para dibujar la ToolTip.

Graphics

Obtiene la superficie de gráficos utilizada para dibujar ToolTip.

ToolTipText

Obtiene el texto para el ToolTip que se ha dibujado.

Métodos

DrawBackground()

Dibuja el fondo del control ToolTip utilizando el color de fondo del sistema.

DrawBorder()

Dibuja el borde de ToolTip utilizando el color de borde del sistema.

DrawText()

Dibuja el texto de ToolTip utilizando el color y la fuente del texto del sistema.

DrawText(TextFormatFlags)

Dibuja el texto de ToolTip utilizando el color y la fuente del texto del sistema y el diseño de texto especificado.

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Se aplica a

Producto Versiones
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9, 10

Consulte también