从 C# 中的子上下文菜单项访问时,源代码控制为空

Aus*_*yan 5 c# version-control contextmenustrip

当他们从上下文菜单条中单击子菜单项(颜色>红色)时,我试图更改按钮的颜色。

该代码附加到用户定义的按钮数量。为了弄清楚他们试图更改哪个按钮,我尝试从子项目转到源代码管理,如下所示:发送者>所有者工具条>所有者菜单>源代码管理。

我的代码:

private void redToolStripMenuItem_Click(object sender, EventArgs e)
{
    var subItem = sender as ToolStripItem;
    if (subItem == null) 
        return;

    var mainItem = subItem.OwnerItem as ToolStripItem;
    if (mainItem == null) 
        return;

    var menuStrip = mainItem.Owner as ContextMenuStrip;
    if (menuStrip == null) 
        return;

    var dataGridView = menuStrip.SourceControl as DataGridView;
    if (dataGridView == null) 
        return; //null here

    MessageBox.Show(dataGridView.Name);
}
Run Code Online (Sandbox Code Playgroud)

根据我在谷歌上发现的信息,这似乎是一个错误。有没有解决方法?