c# - 动态添加上下文菜单项

标签 c# winforms contextmenu

由于某种原因,无论将toolstripmenuitem添加到上下文菜单多少次,它总是说上下文菜单不包含该项目。

ToolStripMenuItem Colour = new ToolStripMenuItem("Colour");

ctmFile.Show(Cursor.Position);
Selecteditem = lvFiles.FocusedItem.Text.ToString();
if (lvFiles.FocusedItem.ImageKey.ToString() == "Folder")
{

    if (ctmFile.Items.Contains(Colour) == false)
    {
        ctmFile.Items.Add(Colour);
    }

}
else
{
    if(ctmFile.Items.Contains(Colour))
    {
        ctmFile.Items.Remove(Colour);
    }
}

最佳答案

只是为了在 Ed 的答案之上添加,我建议使用键:

ctmFile.Show(Cursor.Position);
Selecteditem = lvFiles.FocusedItem.Text.ToString();
if (lvFiles.FocusedItem.ImageKey.ToString() == "Folder")
{

    if (!ctmFile.Items.ContainsKey("Colour")) 
    {
        ToolStripMenuItem Colour = new ToolStripMenuItem("Colour");
        Colour.Name= "Colour"; //Add a name (key) to your menu.
        ctmFile.Items.Add(Colour);
    }

}
else
{
    if (ctmFile.Items.ContainsKey("Colour")) 
    {
        ctmFile.Items.RemoveByKey("Colour");
    }
}

关于c# - 动态添加上下文菜单项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49943297/

相关文章:

c# - 如何在维护相邻列的同时在 ListView 中实现排序?

VSTO 功能区上下文菜单动态层次结构

silverlight - 如何使上下文菜单适用于 Windows Phone?

c# - OrderBy [ Descending ]() 和 SkipWhile() 的意外行为

c# - 输入为整数小时,输出为正数或负数 hh :mm format

c# - 如何分离未分离的输入C#

c# - ASP.NET MVC 5 : App Pool, Windows 身份验证和 Active Directory

c# - C# 中删除文件中的特定字符串

c# - WinForms ListBox 控件上的多行列表项?

javascript - Javascript 上下文菜单?