【问题标题】:Add context menu strip during runtime in C#在 C# 运行时添加上下文菜单条
【发布时间】:2015-05-29 22:47:14
【问题描述】:

我正在尝试向在运行时创建的按钮添加上下文菜单条。我不是想将新项目添加到预先存在的片段中。

Visual Studio 给我一个错误,说索引超出范围。即使菜单已经在设计器中预付,Visual Studio 说找不到菜单。

添加菜单的代码:

btnOutline.ContextMenuStrip = Utilities.Find<ContextMenuStrip>("projectBtnStrip");

Utilities.Find() 的代码:

public static T Find<T>(string name)
    {
        return (T)Convert.ChangeType(fm.Controls.Find(name, true)[0], typeof(T));
    }

Find() 函数适用于所有其他类型,但不是这个。我什至创建了一个非通用版本,称为 FindMenuStrip,但这不起作用。目标是在运行时添加菜单提示,以便用户可以添加具有此菜单的新按钮。有什么想法吗?

【问题讨论】:

    标签: c# runtime contextmenustrip


    【解决方案1】:

    您收到该消息是因为 contextMenuStrip 不是表单控件集合的一部分,因此它没有找到那个“控件”。按钮、标签、文本框等位于该控件集合中,而不是 contextMenuStrip。您必须将它传递给您的方法,或者使用属性来检索它。

    【讨论】:

      猜你喜欢
      • 2011-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多