2009-05-21 14 views
5

Soy nuevo en C# y WinForms así que disculpen mi es que esto es un poco de una cuestión novato.¿Cómo puedo mostrar una información sobre herramientas que muestra el valor de un control deslizable en WinForms

estoy tratando de agregar una información sobre herramientas a mi control TrackBar que muestra el valor actual de la barra mientras lo arrastra. He crea una instancia de un objeto de información sobre herramientas y trató el siguiente código del controlador pero no muestra ninguna información sobre herramientas:

private void trackBar1_Scroll(object sender, EventArgs e) 
{ 
    toolTip1.SetToolTip(trackBar1, trackBar1.Value.ToString()); 
} 

Respuesta

12

Adam acabo implementado una versión muy simple de esto y funciona exactamente como se esperaba ...

Aquí está el código de inicio para la comparación

private void InitializeComponent() 
    { 
     this.components = new System.ComponentModel.Container(); 
     this.toolTip1 = new System.Windows.Forms.ToolTip(this.components); 
     this.trackBar1 = new System.Windows.Forms.TrackBar(); 
     ((System.ComponentModel.ISupportInitialize)(this.trackBar1)).BeginInit(); 
     this.SuspendLayout(); 
     // 
     // trackBar1 
     // 
     this.trackBar1.Location = new System.Drawing.Point(12, 166); 
     this.trackBar1.Name = "trackBar1"; 
     this.trackBar1.Size = new System.Drawing.Size(268, 42); 
     this.trackBar1.TabIndex = 1; 
     this.trackBar1.Scroll += new System.EventHandler(this.trackBar1_Scroll); 
     // 
     // Form1 
     // 
     this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); 
     this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 
     this.ClientSize = new System.Drawing.Size(292, 273); 
     this.Controls.Add(this.trackBar1); 
     this.Name = "Form1"; 
     this.Text = "Form1"; 
     ((System.ComponentModel.ISupportInitialize)(this.trackBar1)).EndInit(); 
     this.ResumeLayout(false); 
     this.PerformLayout(); 

    } 

    private void trackBar1_Scroll(object sender, EventArgs e) 
    { 
     toolTip1.SetToolTip(trackBar1, trackBar1.Value.ToString()); 

    } 

Y funciona como muevo el ticker a cada incremento adicional ...

+0

Aaargh! Tienes razón Eoin, funciona. Encontré un error en otro lugar de mi código que impedía que se llamara al controlador de desplazamiento de la barra de seguimiento. Debería verificar estas cosas más cuidadosamente antes de publicar en Stack Overflow. Este es un buen ejemplo de código, sin embargo, por lo que voy a hacer que la respuesta aceptada. –

1

¿Cómo inicializar la clase toolTip1? La forma en que configura el texto de la sugerencia de la herramienta se ve bien, ¿quizás haya configurado algunas propiedades generales antes de que el componente haga el trabajo?

MSDN dice

// Create the ToolTip and associate with the Form container. 
ToolTip toolTip1 = new ToolTip(); 

// Set up the delays for the ToolTip. 
toolTip1.AutoPopDelay = 5000; 
toolTip1.InitialDelay = 1000; 
toolTip1.ReshowDelay = 500; 
// Force the ToolTip text to be displayed whether or not the form is active. 
toolTip1.ShowAlways = true; 
+0

acabo inicializado con toolTi p1.SetToolTip (trackBar1, "0"); La información sobre herramientas muestra "0" si sólo pasa sobre el deslizador pero tan pronto como se mueve el cursor, la información sobre herramientas desaparezca definitivamente. Gracias por responder tan rápido, pero agregar las líneas que publicó no parece hacer ninguna diferencia. –

Cuestiones relacionadas