【问题标题】:Dynamically add SubMenuItems to a SubMenu将 SubMenuItems 动态添加到 SubMenu
【发布时间】:2020-02-03 23:32:55
【问题描述】:

我有一个带有顶级菜单项(TLM 项)的 c# 菜单条。我正在将项目动态添加到 TLM 项目之一,效果很好。

DataRowCollection DRC = DataAccessClass.GetData("SELECT * FROM company ORDER BY CompanyName");
ToolStripMenuItem[] items = new ToolStripMenuItem[DRC.Count];
int itemCounter = 0;
foreach (DataRow dr in DRC)
{
  string nm = dr["companyname"].ToString();
  int id = Convert.ToInt16(dr["companyid"].ToString());
  items[itemCounter] = new ToolStripMenuItem();
  items[itemCounter].Name = string.Format("menuitem{0}", itemCounter);
  items[itemCounter].Text = nm;
  items[itemCounter].Click += new EventHandler(MenuItemClickHandler);
  itemCounter++;
}

CompanyToolStripMenuItem.DropDownItems.AddRange(items);

填充此 TLM 后,我想将子菜单项动态添加到上面创建的每个动态菜单项。我正在类似地创建一个 ToolStripMenuItems 数组,我正在尝试使用它将它们添加到菜单项中,此处显示第一个菜单项:

CompanyToolStripMenuItem.DropDownItems[0].DropDownItems.AddRange(submenuitems);

但它不起作用。有什么想法吗?

当我将 CompanyToolStripMenuItem.DropDownItems[0] 添加到监视窗口时,它显示了“DropDownItems”属性。当我尝试输入它时,自动完成下拉菜单不会将该属性作为选项公开。

【问题讨论】:

  • ((ToolStripMenuItem)CompanyToolStripMenuItem.DropDownItems[0]).DropDownItems.AddRange(submenuitems);
  • 除非您将其发布为答案,否则我无法将其标记为答案。

标签: c# winforms


【解决方案1】:

尝试将选定的 DropDownItem 项转换为 ToolStripMenuItem:

((ToolStripMenuItem)CompanyToolStripMenuItem.
    DropDownItems[0]).DropDownItems.AddRange(submenuitems);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-07
    • 1970-01-01
    • 2014-02-24
    • 1970-01-01
    • 2013-03-10
    相关资源
    最近更新 更多