Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I display a tooltip showing the value of a trackbar in WinForms

I'm new to C# and WinForms so please excuse me is this is a bit of a newbie question.

I'm trying to add a tooltip to my TrackBar control which shows the current value of the bar as you drag it. I've instantiated a ToolTip object and tried the following handler code but it doesn't show any tooltip:

private void trackBar1_Scroll(object sender, EventArgs e)
{
   toolTip1.SetToolTip(trackBar1, trackBar1.Value.ToString());
}
like image 992
Adam Pierce Avatar asked May 21 '09 11:05

Adam Pierce


2 Answers

Adam I've just implemented a very simple version of this and it works exactly as expected...

Here's the init code for comparison

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

    }

And it works as I move the ticker to each additional increment...

like image 114
Eoin Campbell Avatar answered Oct 17 '22 02:10

Eoin Campbell


How did you initialise the toolTip1 class? The way you set the tool tip text looks ok, maybe you have so set some general properties before the component does the job?

MSDN says

// 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;
like image 37
Chris Richner Avatar answered Oct 17 '22 03:10

Chris Richner