我在 ContextMenuStrip 中有 10 个项目。我有一个打开事件处理程序,它决定 10 个项目中的哪一个是可见的。根据应用程序逻辑,我可以通过设置 Visible = false 和 Enabled = false 来隐藏其中的许多;
在显示 6/10 的情况下会发生什么情况。第一次单击该条时,它们将是一个区域 4 菜单项高度的空白区域。如果我右键单击使其第二次出现,它会显示在它应该在的位置。因此,条带基本上具有为 10 条条带计算的位置,而实际上它只是 6 条条带。
如何强制它重新计算?
以下是我尝试过的一些事情:
contextMenuStrip1.Refresh();
contextMenuStrip1.Update();
contextMenuStrip1.PerformLayout();
contextMenuStrip1.AutoSize = true;
ToolStripItem tempItem = contextMenuStrip1.Items.Add("temp");
contextMenuStrip1.Items.Remove(tempItem);
contextMenuStrip1.Refresh();
contextMenuStrip1.Update();
contextMenuStrip1.Invalidate();