I have a dockable window in a custom ArcMap extension. The dockable window has a regular windows forms ToolStrip control in it with ToolStripButtons on the ToolStrip. When the parent dockable window is not Active and I try to click a button on the toolstrip within the dockable window, I have to click it twice – once to set the focus and then again to fire the click event. I only want to click the button once even if the dockable window is not currently active.
[GIS] ToolStrip Button click event is not fired on first click
arcmaparcobjectsnet
Best Answer
I found a work around to this by using Rick Brewster's suggestions.
First, I modified Rick's class by adding a constructor
public ToolStripEx() : base() { }
Then in my dockable window's designer class "MyClass.Designer.cs" I changed the toolstrip's declared type from
System.Windows.Forms.ToolStrip
toToolStripEx
.Next, in the
InitializeComponent()
method of the same designer class, I changed the initialization type for the toolstrip the same way fromthis.MyToolStrip = new System.Windows.Forms.ToolStrip()
tothis.MyToolStrip = new ToolStripEx()
.Finally, I set
this.MyToolStrip.ClickThrough = true;
in the default property assignment section in the same designer class.Now the buttons on the toolstrip fire the onClick event every time - even when the dockable window is not active!
UPDATE:
Rick's original ToolStripEx class is below in case the link above ever breaks: