2010-11-10 9 views
7

estaba queriendo forzar una información sobre herramientas para mostrar. Por ejemplo, tengo un método que valida un campo. Si el campo no se puede validar, lo tengo despejando el cuadro y marcándolo de rojo. También me gustaría que aparezca una información sobre herramientas en la caja diciendo que el valor no es válido. ¿Hay alguna forma de hacerlo y quizás controlar cuánto tiempo se muestra la información sobre herramientas? No veo ninguna propiedad de información sobre herramientas en intellisenseC#: ¿hay alguna manera de forzar una información sobre herramientas para mostrar?

EDITAR: Lo veo ahora. ¿Pero cómo hacer que aparezca por sí solo frente al mouse sobre el mouse?

+2

WinForms? WPF? ¿Algo más? –

+0

¿dónde quieres que aparezca el pop-up? La información sobre herramientas aparece al pasar el mouse ... si desea que siempre esté presente es probable que desee que aparezca otro elemento en la pantalla. Porque también tendrá que establecer su posición en la pantalla. – Mulki

+1

solo quiero que aparezca en su ubicación normal, justo al lado del control. aparece y muestra un par de segundos – Sinaesthetic

Respuesta

16
"Si no se puede validar el campo, lo tengo que borrar y marcarlo en rojo. También me gustaría que aparezca una información sobre herramientas indicando que el valor no es válido".

Según la descripción del comportamiento que desee, parece que lo mejor sería el componente ErrorProvider en lugar de una información sobre herramientas. El componente ErrorProvider colocará automáticamente un icono que especifica junto al control que falló la validación y mostrar un texto de ayuda para el usuario que describe el error de validación y/o las medidas que deben tomar para corregirlo:

ErrorProvider component in action

Hay una muestra disponible en C# Corner, pero es muy simple de implementar. Sólo tiene que añadir un componente ErrorProvider a su forma (que está disponible por defecto en la caja de herramientas), luego en el método de validación, escriba el siguiente código:

private void ValidateName() 
{ 
if (string.IsNullOrEmpty(NameTextBox.Text)) 
    { 
      //Validation failed, so set an appropriate error message 
      errorProvider.SetError(NameTextBox, "You must enter your name"); 
    } 
    else 
    { 
      //Clear previous error message 
      errorProvider.SetError(NameTextBox, string.Empty); 
    } 
} 
0

Here tiene un ejemplo. Juega con las propiedades de la información sobre herramientas y la información sobre herramientas se mostrará como quieras.

Tiene el método Show en la información sobre herramientas.

Nota: .NET 2.0 versión

+0

bien, así que lo tengo para establecer las propiedades. pero me falta cómo hacer que se muestre automáticamente en lugar de solo al pasar el ratón – Sinaesthetic

0

¿Es esta una aplicación de Windows Forms ... si es así Check here

Si es una aplicación web ASP.NET ... se puede añadir un campo llamado tooltip

3

Prueba esto:
Básicamente,

private void button1_Click(object sender, EventArgs e) 
{ 
    ToolTip toolTip1 = new ToolTip(); 
    toolTip1.Title = "Invalid entry"; // Title to display. 
    toolTip1.Show("Please enter a number.", textBox1); // Message of the toolTip and to what control to appear. 
} 

Pero hay otras 5 sobrecarga de información sobre herramientas. Puede verlo here.

Cuestiones relacionadas