右键菜单栏ContextMenuStrip使用问题

如题,我现在用C#编写了一个COM组件,里面有一个UserControl控件,还控件绑定的有右键菜单栏事件,使用了控件ContextMenuStrip,
1、然后在winform里面的一个窗体中使用Form.Controls.Add()form为模态显示,将COM中的Usercontrol添加进去,改UserControl可以正常使用
2、VB里面调用COM里面的UserControl时,是使用了网上的一个AppendToContainerControl(int Handle)方法通过句柄,然后调用windosAPI的SetParent,将COM中的UserControl控件添加到Form中去的,改Form也是模态显示的。但是在操作过程中自己在UserControl添加的右键菜单栏显示后里面的Item不能正常选中,求解!!!

检查了一下,如果ContextMenuStrip只有一级菜单的话,里面的Item是可以选中的,但是如果存在二级菜单,ContextMenuStrip里面的Item就选不中了

用经典的ContextMenu,不要用ContextMenuStrip,默认ContextMenu不在工具箱里,你可以点工具箱,右键,添加删除,在里面找到添加过来。

1.添加contextMenuStrip控件 默认命名:contextMenuStrip1

2.在要显示的控件上,找到其ContextMenuStrip属性,并设置其为contextMenuStrip1

比如我这边放在 dataGridView1 控件上,就将dataGridView1的ContextMenuStrip属性,设置为contextMenuStrip1

3.将dataGridView1的CellMouseDown事件下写入下列代码

    //在右键点击时,将当前行选中
    private void dataGridView1_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
    {
        if (e.Button == System.Windows.Forms.MouseButtons.Right && e.RowIndex >= 0)
        {
            if (!dataGridView1.Rows[e.RowIndex].Selected)
            {
                dataGridView1.ClearSelection();
                dataGridView1.Rows[e.RowIndex].Selected = true;
            }
            contextMenuStrip1.Show(MousePosition.X, MousePosition.Y);
        }
    }

4.为ToolStripMenuItem 控件添加Click事件

    private void 删除ToolStripMenuItem_Click(object sender, EventArgs e)
    {
        //获取当前选中行的索引t22
        int selectRow = dataGridView1.CurrentRow.Index;
        if (selectRow < 0)
            return;
    }