0

I want to implement simple toggle functionality on a ToolStripButton.

View Mode --> Edit Mode

Edit Mode --> View Mode

This piece of code is working fine except that ToolTip doesn't refresh. I tried AutoToolTip property. I also tried setting ToolTipText to string.Empty. But my toolstrip continues to show old tooltip text. ToolTipText should also change when I toggle.

private void btnTrackingMode_Click(object sender, EventArgs e)
{
    if (_currentSheetTrackingMode == SheetTrackingMode.ViewMode)
    {
        _currentTrackingMode = TrackingMode.EditMode;

        btnTrackingMode.AutoToolTip = true;
        btnTrackingMode.ToolTipText = string.Empty;
        btnTrackingMode.ToolTipText = "You are currently in Edit Mode. Click here to enter into View Mode";
        btnTrackingMode.Image = ((System.Drawing.Image) ((Image) new ComponentResourceManager(typeof(MyForm)).GetObject("btnTrackingEditMode.Image")));
        btnTrackingMode.ImageTransparentColor = System.Drawing.Color.Magenta;
    }
    else
    {
        _currentTrackingMode = TrackingMode.ViewMode;

        btnTrackingMode.AutoToolTip = true;
        btnTrackingMode.ToolTipText = string.Empty;
        btnTrackingMode.ToolTipText = "You are currently in View Mode. Click here to enter into Edit Mode";
        btnTrackingMode.Image = ((System.Drawing.Image) ((Image) new ComponentResourceManager(typeof(MyForm)).GetObject("btnTrackingViewMode.Image")));
        btnTrackingMode.ImageTransparentColor = System.Drawing.Color.Magenta;
    }
}
default locale
  • 13,035
  • 13
  • 56
  • 62
user1
  • 4,031
  • 8
  • 37
  • 66

1 Answers1

0

You can try to refresh the button's parent ToolStrip

btnTrackingMode.ToolTipText = "something";
//put your toolstrip's name here
buttonsToolStrip.Refresh();

You should be able to access the parent tool strip through btnTrackingMode.Owner if it's not directly available for some reason.

default locale
  • 13,035
  • 13
  • 56
  • 62