gpt4 book ai didi

c# - ContextMenuStrip 你如何强制更新(大小错误 b/c 我隐藏了它的一些项目)

转载 作者:行者123 更新时间:2023-11-30 16:23:40 28 4
gpt4 key购买 nike

我在 ContextMenuStrip 中有大约 10 个项目。我有一个 Opening Event 处理程序,它决定 10 个项目中的哪些项目是可见的。基于应用程序逻辑,我可以通过设置 Visible = false 和 Enabled = false 来隐藏其中的许多;

在显示 6/10 的情况下会发生什么。我第一次单击该 strip 时,它们将是空白区域的 4 个菜单项高度。如果我右键单击使其第二次出现,它就会出现在它应该出现的位置。因此, strip 基本上是针对 10 项 strip 计算的位置,而实际上它只是一个 6 项 strip 。

First Click It looks like this 2nd click it looks fine

我如何强制它重新计算?

以下是我尝试过的一些方法:

        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();

最佳答案

我发现了

AutoSize = false;
AutoSize = true;

在所有项目操作都有效之后。还没有找到任何其他解决方案。

在我的例子中,我在打开时添加项目(动态窗口列表),有时项目标题比菜单长。

关于c# - ContextMenuStrip 你如何强制更新(大小错误 b/c 我隐藏了它的一些项目),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11390190/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com