如何在WinForms中显示显示轨迹栏值的工具提示

时间:2009-05-21 11:01:13

标签: c# winforms tooltip

我是C#和WinForms的新手所以请原谅我这是一个新手问题。

我正在尝试向TrackBar控件添加一个工具提示,它会在您拖动时显示该栏的当前值。我已经实例化了一个ToolTip对象,并尝试了以下处理程序代码,但它没有显示任何工具提示:

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

3 个答案:

答案 0 :(得分:12)

Adam我刚刚实现了一个非常简单的版本,它完全符合预期...

这是比较的初始代码

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

    }

当我将自动收报机移动到每个额外的增量时,它就起作用了......

答案 1 :(得分:1)

你是如何初始化toolTip1类的?您设置工具提示文本的方式看起来不错,也许您在组件完成工作之前设置了一些常规属性?

MSDN说

// 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;

答案 2 :(得分:0)

太棒了,它运作良好。