溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

C# WinForm利用sideBar動態(tài)加載菜單欄,并創(chuàng)建菜單欄事件

發(fā)布時間:2020-03-27 17:51:19 來源:網(wǎng)絡(luò) 閱讀:4078 作者:taosport 欄目:編程語言

        簡要說明:SessionInfo,用于臨時保存信息。

                         SessionInfo.m_FrmMain.showFunctionFrm(ccim.Tag.ToString().Trim());//根據(jù)窗體全稱,打開窗體。

        #region 定義
        private DataTable dt_role = new DataTable();
        private SQLBase SQL_Base = new SQLBase();
        string strMenu = string.Empty;//用于臨時保存主模塊名稱
        SideBarPanelItem sideBarPanel1;
        ControlContainerItem conCI;
        SideBarPanelItem sideBarPanel2 = null;//用于臨時保存主模塊的控件類型
        #endregion
        
        #region 顯示函數(shù)
        private void Menu_Load()
        {
            dt_role = SQL_Base._GetUserRole(SessionInfo._GroupID);//根據(jù)分組,查找登錄者的權(quán)限
            for (int i = 0; i < dt_role.Rows.Count; i++)
            {
                //if用于判斷,如果是相同主模塊,則不再重復(fù)添加控件。
                if (string.IsNullOrEmpty(strMenu) || strMenu != dt_role.Rows[i]["c_MenuGroupName"].ToString())
                {
                    sideBarPanel1 = new SideBarPanelItem();//創(chuàng)建主模塊控件
                    sideBarPanel1.Text = strMenu = dt_role.Rows[i]["c_MenuGroupName"].ToString();//設(shè)置控件內(nèi)容,并臨時保存主模塊標(biāo)題
                    sideBarPanel1.Tag=dt_role.Rows[i]["c_MenuGroupName"].ToString();//設(shè)置控件內(nèi)容
                    sideBar1.Panels.AddRange(new BaseItem[] { sideBarPanel1 });//添加主模塊控件
                    conCI = new ControlContainerItem();//創(chuàng)建子模塊控件
                    conCI.Text = dt_role.Rows[i]["c_FunctionName"].ToString();//設(shè)置控件內(nèi)容
                    conCI.Tag = dt_role.Rows[i]["c_FrmName"].ToString();//設(shè)置點擊時,要打開哪個窗體(保存WinForm全稱)。
                    conCI.Click += new System.EventHandler(Bar_ItemClicked);//添加事件
                    sideBarPanel1.SubItems.AddRange(new BaseItem[] { conCI });//添加子模塊控件
                    sideBarPanel2 = sideBarPanel1;//用于臨時保存主模塊的控件類型
                }
                else if(strMenu == dt_role.Rows[i]["c_MenuGroupName"].ToString())
                {
                    //如果是相同的主模塊,則不再New主模塊,直接利用臨時保存的sideBarPanel2加載子模塊。
                    conCI = new ControlContainerItem();//創(chuàng)建子模塊控件
                    conCI.Text = dt_role.Rows[i]["c_FunctionName"].ToString();//設(shè)置控件內(nèi)容
                    conCI.Tag = dt_role.Rows[i]["c_FrmName"].ToString();//設(shè)置點擊時,要打開哪個窗體(保存WinForm全稱)。
                    conCI.Click += new System.EventHandler(Bar_ItemClicked);//添加事件
                    sideBarPanel2.SubItems.AddRange(new BaseItem[] { conCI });//添加子模塊控件
                }
            }
        }
        #endregion
        
        #region 創(chuàng)建子模塊的當(dāng)前事件
        private void Bar_ItemClicked(object sender, EventArgs e)
        {
            //傳入object類型,判斷哪個子模塊觸發(fā)了當(dāng)前事件。
            ControlContainerItem ccim = (ControlContainerItem)sender;
            if (ccim.Tag.ToString().Trim() != "")
            {
                SessionInfo.m_FrmMain.showFunctionFrm(ccim.Tag.ToString().Trim());//傳入WinForm名稱
            }
        }
        #endregion


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI