フォームに devcomponent dotnetbar サイドバーがあり、コマンドを使用してそれにメニュー ストリップ項目を追加しようとしました。動作しますが、各サブメニューのクリック イベントをサイドバー ボタンのクリック イベントに追加する必要があります。
private void InitMenu()
{
DevComponents.DotNetBar.BaseItem[] baseitem = new DevComponents.DotNetBar.BaseItem[menuStrip.Items.Count];
System.Windows.Forms.ToolStripMenuItem submenuitem = new System.Windows.Forms.ToolStripMenuItem();
for (int ii = 0; ii < menuStrip.Items.Count; ii++)
{
try
{
baseitem[ii] = new DevComponents.DotNetBar.SideBarPanelItem();
baseitem[ii].Name = menuStrip.Items[ii].Name.ToString();
baseitem[ii].Text = menuStrip.Items[ii].Text.ToString();
submenuitem = (ToolStripMenuItem)menuStrip.Items[ii];
DevComponents.DotNetBar.ButtonItem[] buttonitem = new DevComponents.DotNetBar.ButtonItem[submenuitem.DropDownItems.Count];
for (int i = 0; i < submenuitem.DropDownItems.Count; i++)
{
if (submenuitem.DropDownItems[i].Text == "" || submenuitem.DropDownItems[i].Text.Trim() == "-") { continue; }
DevComponents.DotNetBar.ButtonItem blnitem = new DevComponents.DotNetBar.ButtonItem(submenuitem.DropDownItems[i].Name, submenuitem.DropDownItems[i].Text);
blnitem.ButtonStyle = DevComponents.DotNetBar.eButtonStyle.TextOnlyAlways;
blnitem.ImagePaddingHorizontal = 8;
blnitem.Click += new EventHandler(submenuitem.DropDownItems[i].Click); // how to bind the relative menu event to blnitem?
blnitem.ImagePosition = DevComponents.DotNetBar.eImagePosition.Top;
baseitem[ii].SubItems.Add(blnitem);
}
sideBar1.Panels.Add(baseitem[ii]);
sideBar1.Refresh();
}
catch (System.Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
}