usar personalizar como c# tooltip picturebox

como - personalizar tooltip c#



PictureBox Tooltip cambiando C# (4)

Ok, soy un completo principiante y he logrado armar una pequeña aplicación en C # donde ingreso un nombre de usuario en un cuadro de texto y la aplicación obtiene el avatar de ese nombre de usuario y lo muestra en una caja de imágenes.

Lo que quiero hacer es tener una información sobre herramientas que muestre el nombre de usuario que se escribió en el cuadro de texto cuando el mouse se sitúa sobre el avatar cargado. debería cambiar cada vez que se carga un nuevo avatar. Sé cómo usar la información sobre herramientas de la forma habitual, pero para mí esto es un poco complejo. Cualquier ayuda será apreciada.

Gracias.


Agregue un evento flotante a su picturebox con el siguiente código.

private void pictureBox1_MouseHover(object sender, EventArgs e) { ToolTip tt = new ToolTip(); tt.SetToolTip(this.pictureBox1, "Your username"); }


La respuesta de Brandon-Miller está bien, excepto por el hecho de que sugiere crear una Información sobre herramientas por PictureBox. Esto sigue siendo inefectivo, aunque es mejor que el enfoque de Joe, porque en realidad no necesita más de un objeto de información sobre herramientas para todo el formulario. Puede crear miles de ''definiciones de información sobre herramientas'' (probablemente no sea un término real) para diferentes controles (bits y bobs en los formularios). Es por eso que está definiendo el control como el primer parámetro al crear o configurar la Información sobre herramientas.

El enfoque correcto (o al menos el menos inútil), por lo que sé, es crear UN objeto de información sobre herramientas por formulario y luego usar la función SetTooltip para crear "definiciones" para diferentes controles. Ejemplo:

private ToolTip helperTip; public MyForm() { InitializeComponent(); // The ToolTip inicialization. Do this only once. helperTip = new ToolTip(pictureBox1, "Tooltip text"); // Now you can create other ''definitions'', still using the same tooltip! helperTip.SetToolTip(loginTextBox, "Login textbox tooltip"); }

O, ligeramente diferente, con la inicialización hecha de antemano:

// Instantiate a new ToolTip object. You only need one of these! And if // you''ve added it through the designer (and renamed it there), // you don''t even need to do this declaration and creation bit! private ToolTip helperTip = new ToolTip(); public MyForm() { InitializeComponent(); // The ToolTip setting. You can do this as many times as you want helperTip.SetToolTip(pictureBox1, "Tooltip text"); // Now you can create other ''definitions'', still using the same tooltip! helperTip.SetToolTip(loginTextBox, "Login textbox tooltip"); }

Si agregó la información sobre herramientas en el diseñador de formularios, puede omitir la declaración al principio. Ni siquiera necesita inicializarlo (por lo que sé, esto debe hacerse mediante el código generado por el diseñador), solo use SetToolTip para crear nuevas informaciones sobre herramientas para diferentes controles.


La respuesta de Joes hace el trabajo, pero es ineficiente. El código crea una nueva ToolTip cada vez que se PictureBox el PictureBox . Cuando utiliza el método SetToolTip() , asocia la ToolTip sobre ToolTip creada con el control especificado y mantiene la ToolTip en la memoria. Solo necesitas llamar a este método una vez. Le sugiero que cree solo una ToolTip sobre ToolTip para cada PictureBox en el constructor de formularios. He probado esto y funciona bien, y las sugerencias sobre herramientas se muestran más rápido para mí:

public MyForm() { InitializeComponent(); // The ToolTip for the PictureBox. new ToolTip().SetToolTip(pictureBox1, "The desired tool-tip text."); }


private void pictureBox1_Paint(object sender, PaintEventArgs e) { ToolTip tooltip1 = new ToolTip(); tooltip1.Show(textBox1.Text, this.pictureBox1); } private void pictureBox1_MouseMove(object sender, MouseEventArgs e) { pictureBox1.Invalidate(); }