Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在运行时将项添加到ToolStrip_C#_Toolstripitem_Toolstripmenu - Fatal编程技术网

C# 在运行时将项添加到ToolStrip

C# 在运行时将项添加到ToolStrip,c#,toolstripitem,toolstripmenu,C#,Toolstripitem,Toolstripmenu,您好,我有一个ToolStripMenu和一个“Favorites”菜单,我想在WinForms应用程序运行时向其中添加子项。我有一个datagridview,右键单击它可以显示带有“添加到收藏夹”选项的上下文菜单。当触发该事件时,我想使用datagriview(我已经知道如何做)中选定行的一些文本将一个项目添加到此收藏夹菜单。需要解决的棘手问题是,我需要为我的newlyCreatedToolStripMenuItem\u Click事件创建代码。稍后我将决定如何保存收藏夹列表 因此,我们打算:

您好,我有一个ToolStripMenu和一个“Favorites”菜单,我想在WinForms应用程序运行时向其中添加子项。我有一个datagridview,右键单击它可以显示带有“添加到收藏夹”选项的上下文菜单。当触发该事件时,我想使用datagriview(我已经知道如何做)中选定行的一些文本将一个项目添加到此收藏夹菜单。需要解决的棘手问题是,我需要为我的
newlyCreatedToolStripMenuItem\u Click
事件创建代码。稍后我将决定如何保存收藏夹列表

因此,我们打算:

右键单击“John Smith”的
datagridview

ContextMenu

收藏夹
ToolStripMenu
中添加了一个新项,内容为“John Smith”

单击“John Smith”
ToopTripMenuItem
触发一个操作(例如在daragridview行中选择该行,等等)

有什么好的开始想法吗?

这很简单。 您只需设置一个回调方法,该方法用于所有常用的
ToolStripMenuItem
。 在该方法中,您可以比较
item.Text
item.Name
属性,并执行不同的常用方法

private void FavoriteToolStriptem_Click(object sender, EventArgs e) {
    ToolStripMenuItem item = sender as ToolStripMenuItem;
    MessageBox.Show("You clicked on the menu item called " + item.Name + " shown as " + item.Text);
}

如果我理解正确,我想这正是你想要的:

    private void buttonAddFav_Click(object sender, EventArgs e)
    {
        ToolStripItem item = new ToolStripMenuItem();
        //Name that will apear on the menu
        item.Text = "Jhon Smith";
        //Put in the Name property whatever neccessery to retrive your data on click event
        item.Name = "GridViewRowID or DataKeyID";
        //On-Click event
        item.Click += new EventHandler(item_Click);
        //Add the submenu to the parent menu
        favToolStripMenuItem.DropDownItems.Add(item);
    }

    void item_Click(object sender, EventArgs e)
    {
        throw new NotImplementedException();
    }