我現在想動態加載菜單
請教怎么做
menumain.Items.Clear();
ToolStripMenuItem menutola = new ToolStripMenuItem();
ToolStripMenuItem menutol1 = new ToolStripMenuItem();
ToolStripMenuItem menutol2 = new ToolStripMenuItem();
ToolStripMenuItem menuto3 = new ToolStripMenuItem();
ToolStripMenuItem menutol4 = new ToolStripMenuItem();
ToolStripMenuItem menutol5 = new ToolStripMenuItem();
for (int i = 0; i <= arrary.GetUpperBound(0); i++)
{
if (arrary[i, 1] == "" || arrary[i, 1] == null)
{ }
else
{
System.Windows.Forms.TreeNode tn = new System.Windows.Forms.TreeNode(arrary[i, 1]);
tn.Tag = arrary[i, 0];//菜單代碼 arrary[i, 1]名稱 arrary[i, 2]級別
//menutola.Text = "JokevinHr";
//menumain.Items.Add(menutola); switch(arrary[i,2])
{
case "1":
menutol1 = menutola;
menumain.Items.Add(arrary[i, 1]);
break;
case "2":
trpa.Nodes.Add(tn);
trpb = tn;
trpb.Expand();
//ToolStripMenuItem menutol2 = new ToolStripMenuItem();
//menutol2.Text = tn.Text;
menutol1.DropDownItems.Add(arrary[i, 1]);
break; case "3":
menutol2.DropDownItems.Add(arrary[i, 1]);
break; case "4":
break;
case "5":
break; case "6":
break;
default:
break;
}
} }
請教怎么做
menumain.Items.Clear();
ToolStripMenuItem menutola = new ToolStripMenuItem();
ToolStripMenuItem menutol1 = new ToolStripMenuItem();
ToolStripMenuItem menutol2 = new ToolStripMenuItem();
ToolStripMenuItem menuto3 = new ToolStripMenuItem();
ToolStripMenuItem menutol4 = new ToolStripMenuItem();
ToolStripMenuItem menutol5 = new ToolStripMenuItem();
for (int i = 0; i <= arrary.GetUpperBound(0); i++)
{
if (arrary[i, 1] == "" || arrary[i, 1] == null)
{ }
else
{
System.Windows.Forms.TreeNode tn = new System.Windows.Forms.TreeNode(arrary[i, 1]);
tn.Tag = arrary[i, 0];//菜單代碼 arrary[i, 1]名稱 arrary[i, 2]級別
//menutola.Text = "JokevinHr";
//menumain.Items.Add(menutola); switch(arrary[i,2])
{
case "1":
menutol1 = menutola;
menumain.Items.Add(arrary[i, 1]);
break;
case "2":
trpa.Nodes.Add(tn);
trpb = tn;
trpb.Expand();
//ToolStripMenuItem menutol2 = new ToolStripMenuItem();
//menutol2.Text = tn.Text;
menutol1.DropDownItems.Add(arrary[i, 1]);
break; case "3":
menutol2.DropDownItems.Add(arrary[i, 1]);
break; case "4":
break;
case "5":
break; case "6":
break;
default:
break;
}
} }
而ToolStripMenuItem沒有,只有DropDownItems.Add
這中間轉時不會
動態得到
以下語句怎么轉換
MenuStrip menuStripHr = new MenuStrip();
ToolStripMenuItem MnuNew = new ToolStripMenuItem();
MnuNew = menuStripHr.Items.Add(p_Arrary[i, 1], null,new EventHandler(Mnu_NewMenuItem_Click));
MnuNew = MnuParent2.DropDownItems.Add(p_Arrary[i, 1],null, new EventHandler(Mnu_NewMenuItem_Click));
void Mnu_NewMenuItem_Click(object sender, EventArgs e)
{
}
''' 检查是否有相关的Menu 设定,如有,则建立
''' </summary>
''' <res></res>
Private Sub CreateMenu()
Dim dtMenu As DataTable
dtMenu = oECSGen.getDT_MenuItem(c_PorgramID) If dtMenu.Rows.Count = 0 Then Exit Sub Dim mnuForm As New MenuStrip
Dim dtMenuRoot As DataTable
Dim iMenuID As Integer dtMenuRoot = oECSGen.getDT_MenuItem_byID(c_PorgramID, 0)
If dtMenuRoot.Rows.Count = 0 Then Exit Sub ' 增加第一级Menu
For i As Int16 = 0 To dtMenuRoot.Rows.Count - 1
Dim tsmItem As New ToolStripMenuItem(dtMenuRoot.Rows(i).Item("Item_Text").ToString) ' 增加其下的所有级别的 Menu Item
iMenuID = dtMenuRoot.Rows(i).Item("Item_ID") createNestMenuItem(tsmItem, iMenuID) mnuForm.Items.Add(tsmItem)
Next mnuForm.Dock = DockStyle.Top Me.MainMenuStrip = mnuForm
Me.Controls.Add(mnuForm)
End Sub ''' <summary>
''' 嵌套产生一个Top Level 菜单项下所有级别的菜单项
''' </summary>
''' <param name="tsmParentItem">父菜单项</param>
''' <param name="iParentID">父菜单ID</param>
''' <res></res>
Private Sub createNestMenuItem(ByVal tsmParentItem As ToolStripMenuItem, ByVal iParentID As Integer)
Dim dtMenuLevel As DataTable
Dim iMenuID As Integer dtMenuLevel = oECSGen.getDT_MenuItem_byID(c_PorgramID, iParentID)
If dtMenuLevel.Rows.Count > 0 Then
For j As Int16 = 0 To dtMenuLevel.Rows.Count - 1
Dim tsmItemLevel As New ToolStripMenuItem(dtMenuLevel.Rows(j).Item("Item_Text").ToString, Nothing, New EventHandler(AddressOf OnMenuItem_Click), dtMenuLevel.Rows(j).Item("Item_Name").ToString)
tsmParentItem.DropDownItems.Add(tsmItemLevel)
iMenuID = Val(dtMenuLevel.Rows(j).Item("Item_ID")) createNestMenuItem(tsmItemLevel, iMenuID)
Next
End If
End Sub ''' <summary>
''' 处理对应 Menu Item 的单击事件,根据其对应的名称
''' </summary>
''' <res>此处理过程必须要根据对应的Menu Item 写对应的处理事件</res>
Private Sub OnMenuItem_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Dim sItemName As String = CType(sender, ToolStripMenuItem).Name.Trim.ToLower Select Case sItemName
Case "mnufile_save" ' Menu : File
Toolbar_Click("Save")
Case "mnufile_cancel"
Toolbar_Click("Undo")
Case "mnufile_exit"
Toolbar_Click("Exit") Case "mnuedit_copy" ' Menu : Edit Case "mnuedit_paste" Case "mnurecord_add" ' Menu : Record
Toolbar_Click("Add")
Case "mnurecord_edit"
Toolbar_Click("Edit")
Case "mnurecord_delete"
Toolbar_Click("Delete")
Case "mnurecord_copy"
Toolbar_Click("Copy") Case "mnuOther" ' Menu : Other
Case "" Case "" ' Menu : Window Case "" ' Menu : Help
Case Else End Select End Sub
#End Region