Peter Sun
Peter Sun

Reputation: 1813

C# Winform ToolTip Enable/Disable

I am trying to give the user an option to disable and enable the tool tips. In my application, I created a menu strip with two options (EnableToolTip/DisableToolTip). Here my code to set the tool Tips (where ttObj is a global object):

private void loadToolTips()
{

    ttObj.AutoPopDelay = 5000;
    ttObj.InitialDelay = 1000;
    ttObj.ReshowDelay = 500;

    ttObj.SetToolTip(this.btnSetRolesType, "A");
    ttObj.SetToolTip(btnCreateUser, "B");
    ttObj.SetToolTip(btnModifyNum, "C");
    ttObj.SetToolTip(btnFindDups, "D");
    ttObj.ShowAlways = false;

}

And this is where I am trying to disable the tooltips

private void enableToolStripMenuItem_Click(object sender, EventArgs e)
{
    enableToolStripMenuItem.Checked = true;
    disableToolStripMenuItem.Checked = false;
}

private void disableToolStripMenuItem_Click(object sender, EventArgs e)
{
    disableToolStripMenuItem.Checked = true;
    enableToolStripMenuItem.Checked = false;
    ttObj.Hide(this); //this doesn't do anything

}

There isn't much on google or stackoverflow. Some help is much appreciated.

Upvotes: 0

Views: 3491

Answers (1)

Grant Winney
Grant Winney

Reputation: 66439

To enable/disable the tool tips, use the Active property. Set it False to disable and when you set it back to True, you'll have your tool tips again without having to re-add them.

private void enableToolStripMenuItem_Click(object sender, EventArgs e)
{
    enableToolStripMenuItem.Checked = true;
    disableToolStripMenuItem.Checked = false;

    ttObj.Active = true;
}

private void disableToolStripMenuItem_Click(object sender, EventArgs e)
{
    disableToolStripMenuItem.Checked = true;
    enableToolStripMenuItem.Checked = false;

    ttObj.Active = false;
}

Alternatively, to just wipe them out, use RemoveAll(). You'll have to re-run loadToolTips() to add them back.

private void disableToolStripMenuItem_Click(object sender, EventArgs e)
{
    disableToolStripMenuItem.Checked = true;
    enableToolStripMenuItem.Checked = false;

    ttObj.RemoveAll();   
}

Upvotes: 1

Related Questions