gpt4 book ai didi

c# - 仅当 listView 不为空时,如何才能激活/启用 contextmenustrip 菜单?

转载 作者:太空宇宙 更新时间:2023-11-03 12:21:48 24 4
gpt4 key购买 nike

这就是我在构造函数中所做的:

ListViewCostumControl.lvnf.ContextMenuStrip = contextMenuStrip1;
ToolStripMenuItem item1 = new ToolStripMenuItem();
item1.Name = "Open File Folder Location";
item1.Text = "Open File Folder Location";
item1.Click += contextMenuStrip1_ItemClick;
ToolStripMenuItem item2 = new ToolStripMenuItem();
item2.Name = "Launch File";
item2.Text = "Launch File";
item2.Click += contextMenuStrip2_ItemClick;
ToolStripMenuItem item3 = new ToolStripMenuItem();
item3.Name = "Copy File";
item3.Text = "Copy File";
item3.Click += contextMenuStrip3_ItemClick;
contextMenuStrip1.Items.Add(item1);
contextMenuStrip1.Items.Add(item2);
contextMenuStrip1.Items.Add(item3);

但即使 listView lvnf 为空,它也会在右键单击时显示菜单。我希望仅当 ListViewCostumControl.lvnf.Items.Count 大于 0 时才能启用菜单。

而且由于在程序中 listView 也可能变空,不仅在运行程序时我还需要在程序运行时检查它,而不仅仅是在启动时检查一次。

最佳答案

您可以在 ContextMenuStrip 的“打开”事件中执行此操作。如果您快速双击 contextMenuStrip1,将在代码文件中创建一个函数并绑定(bind)到 Opening 事件。

将 CancelEventArgs.Cancel 属性设置为 true 将阻止菜单打开。

private void contextMenuStrip1_Opening(object sender, CancelEventArgs e)
{
var listView = (ListView)contextMenuStrip1.SourceControl;
if (listView.Items.Count == 0)
{
e.Cancel = true;
}
}

关于c# - 仅当 listView 不为空时,如何才能激活/启用 contextmenustrip 菜单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46859868/

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