У меня есть элемент управления TreeView, для которого каждый узел в нем я хочу поделиться ContextMenuStrip, который имеет два ToolStripMenuItems, то есть:
this.BuildTree = new MyApp.MainForm.TreeView();
this.ItemMenuStrip = new System.Windows.Forms.ContextMenuStrip(this.components);
this.DeleteMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.ShowLogMenuItem = new System.Windows.Forms.ToolStripMenuItem();
...
this.ItemMenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.DeleteMenuItem,
this.ShowLogMenuItem});
Поэтому я показываю и скрываю их для элементов в соответствии с определенными критериями при щелчке правой кнопкой мыши в событии MouseUp. Когда оба скрыты, я скрываю сам ContextMenuStrip. Проблема в том, что когда я скрываю ContextMenuStrip, в следующий раз, когда я хочу показать один из пунктов меню, мне нужно дважды щелкнуть по узлу. Странная вещь заключается в первом щелчке, чтобы повторно показать один или оба элемента, у меня есть следующий код:
ItemMenuStrip.Visible = true;
ShowLogMenuItem.Visible = true;
Две строки выше, похоже, ничего не делают, т.е. обе остаются ложными в представлении отладчика после перехода по каждой строке.
Я не думаю, что у меня установлены какие-либо события для этих значений, по крайней мере, у меня нет событий.
Что я делаю не так?