[学习公共库]menu / treeview 递归调用方法 |
private void bindmenu(MenuItemCollection MIC,string depid) { DataSet ds = bindds();//获取DataSet,具体代码略 DataView dv = ds.Tables["Users"].DefaultView; dv.RowFilter = "ParentID="+depid; string strID; foreach (DataRowView dr in dv) { MenuItem mi = new MenuItem(); mi.Value = dr["UserID"].ToString(); strID = dr["UserID"].ToString(); mi.Text = dr["UserName"].ToString(); MIC.Add(mi); bindmenu(MIC[MIC.Count-1].ChildItems,strID); } } private void Form1_Load(object sender, System.EventArgs e) { //Init Menu LoadComMenu(); } #region//LoadComMenu public void LoadComMenu() { //you can read data from database,I was read from XML file try { string[] sComDesc; XmlDocument xmldoc = new XmlDocument(); int Icom=0; xmldoc.Load(System.Environment.CurrentDirectory + "//Com_info.xml"); XmlNodeList ns = xmldoc.SelectNodes("//root/COM_INFO"); int nCount = ns.Count; sComDesc =new string[nCount]; foreach (XmlNode n1 in ns) { sComDesc[Icom]=n1.ChildNodes.Item(1).InnerText.Trim(); AddComMenu(sComDesc[Icom++]); } } catch(Exception Ex) { MessageBox.Show(Ex.Message); } } #endregion #region//AddComMenu private void AddComMenu(string sMenu) { //Add Event for menu MenuItem menu1 = new MenuItem(sMenu); menu1.Click +=new EventHandler(this.ClickComMenu); MainMenu.MenuItems[0].MenuItems.Add(menu1); } #endregion #region//ClickComMenu private void ClickComMenu(object sender,EventArgs e) { //you can distinguish by "((MenuItem)sender).Text" using switch string sSender = ((MenuItem)sender).Text; MessageBox.Show(sSender + "Click"); } #endregion
|
|
|

.: 公告
|
« | September 2025 | » | 日 | 一 | 二 | 三 | 四 | 五 | 六 | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | | | | |
|
.: 我的分类(专题)
|

.: 最新日志
.: 最新回复
|

blog名称:栗色?蓝色? 日志总数:449 评论数量:201 留言数量:37 访问次数:2260826 建立时间:2006年5月16日 |
|

.: 留言板
|

.: 链接
|

|