日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 芯聞號(hào) > 充電吧
[導(dǎo)讀]C# 利用數(shù)據(jù)庫(kù)和MenuStrip控件動(dòng)態(tài)生成菜單,設(shè)計(jì)如圖一,拖一個(gè)Menustrip控件。 設(shè)計(jì)實(shí)現(xiàn)如下: 1、數(shù)據(jù)庫(kù)設(shè)計(jì): 列名 數(shù)據(jù)類型 允許NULL值 描述 MODULENAME nva

C# 利用數(shù)據(jù)庫(kù)和MenuStrip控件動(dòng)態(tài)生成菜單,設(shè)計(jì)如圖一,拖一個(gè)Menustrip控件。

設(shè)計(jì)實(shí)現(xiàn)如下:

1、數(shù)據(jù)庫(kù)設(shè)計(jì):

列名 數(shù)據(jù)類型 允許NULL值 描述 MODULENAME nvarchar(100) 不允許 系統(tǒng)名稱 SECTIONNAME nvarchar(100) 不允許 系統(tǒng)名稱 FUNCTIONNAME nvarchar(100) 不允許 功能模塊 SORTNO smallint 允許 PROMPTNAME nvarchar(100) 允許 creation_date datetime 允許 creation_by nvarchar(50) 允許 last_update_by nvarchar(50) 允許 last_update_date datetime 允許 description nvarchar(200) 允許 WEBPAGE nvarchar(200) 允許 設(shè)計(jì)頁(yè)面路徑 DISABLED smallint 允許 是否可用 MENU_I int 允許 子級(jí)菜單 MENU_J int 允許 父級(jí)菜單 EN_MENUNAME nvarchar(100) 允許 菜單英文名 CN_MENUNAME nvarchar(100) 允許 菜單中文名 TD_MENUNAME nvarchar(100) 允許 菜單繁體名

2、數(shù)據(jù)庫(kù)數(shù)據(jù)插入


INSERT [dbo].[MODULEFUNCTION_T] ([MODULENAME], [SECTIONNAME], [FUNCTIONNAME], [SORTNO], [PROMPTNAME], [creation_date], [creation_by], [last_update_by], [last_update_date], [description], [WEBPAGE], [DISABLED], [MENU_I], [MENU_J], [EN_MENUNAME], [CN_MENUNAME], [TD_MENUNAME]) VALUES (N'RobotWMS', N'RobotWMS', N'系統(tǒng)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 10000, 0, N'System', N'系統(tǒng)', N'系統(tǒng)')
INSERT [dbo].[MODULEFUNCTION_T] ([MODULENAME], [SECTIONNAME], [FUNCTIONNAME], [SORTNO], [PROMPTNAME], [creation_date], [creation_by], [last_update_by], [last_update_date], [description], [WEBPAGE], [DISABLED], [MENU_I], [MENU_J], [EN_MENUNAME], [CN_MENUNAME], [TD_MENUNAME]) VALUES (N'RobotWMS', N'RobotWMS', N'系統(tǒng)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 10020, 10000, N'-', N'-', N'-')
INSERT [dbo].[MODULEFUNCTION_T] ([MODULENAME], [SECTIONNAME], [FUNCTIONNAME], [SORTNO], [PROMPTNAME], [creation_date], [creation_by], [last_update_by], [last_update_date], [description], [WEBPAGE], [DISABLED], [MENU_I], [MENU_J], [EN_MENUNAME], [CN_MENUNAME], [TD_MENUNAME]) VALUES (N'RobotWMS', N'RobotWMS', N'系統(tǒng)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 10080, 10000, N'LogOut', N'切換帳號(hào)', N'切換帳號(hào)')
INSERT [dbo].[MODULEFUNCTION_T] ([MODULENAME], [SECTIONNAME], [FUNCTIONNAME], [SORTNO], [PROMPTNAME], [creation_date], [creation_by], [last_update_by], [last_update_date], [description], [WEBPAGE], [DISABLED], [MENU_I], [MENU_J], [EN_MENUNAME], [CN_MENUNAME], [TD_MENUNAME]) VALUES (N'RobotWMS', N'RobotWMS', N'系統(tǒng)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 10090, 10000, N'Exit', N'退出系統(tǒng)', N'退出系統(tǒng)')
INSERT [dbo].[MODULEFUNCTION_T] ([MODULENAME], [SECTIONNAME], [FUNCTIONNAME], [SORTNO], [PROMPTNAME], [creation_date], [creation_by], [last_update_by], [last_update_date], [description], [WEBPAGE], [DISABLED], [MENU_I], [MENU_J], [EN_MENUNAME], [CN_MENUNAME], [TD_MENUNAME]) VALUES (N'RobotWMS', N'RobotWMS', N'系統(tǒng)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, N'ChangePassword.frmChangePassword', 1, 10010, 10000, N'ChangePassword', N'修改密碼', N'修改密碼')
INSERT [dbo].[MODULEFUNCTION_T] ([MODULENAME], [SECTIONNAME], [FUNCTIONNAME], [SORTNO], [PROMPTNAME], [creation_date], [creation_by], [last_update_by], [last_update_date], [description], [WEBPAGE], [DISABLED], [MENU_I], [MENU_J], [EN_MENUNAME], [CN_MENUNAME], [TD_MENUNAME]) VALUES (N'RobotWMS', N'RobotWMS', N'基礎(chǔ)資料', NULL, NULL, NULL, NULL, NULL, NULL, NULL, N'', 1, 50000, 0, N'BasicSetting', N'基礎(chǔ)設(shè)置', N'基礎(chǔ)設(shè)置')
INSERT [dbo].[MODULEFUNCTION_T] ([MODULENAME], [SECTIONNAME], [FUNCTIONNAME], [SORTNO], [PROMPTNAME], [creation_date], [creation_by], [last_update_by], [last_update_date], [description], [WEBPAGE], [DISABLED], [MENU_I], [MENU_J], [EN_MENUNAME], [CN_MENUNAME], [TD_MENUNAME]) VALUES (N'RobotWMS', N'RobotWMS', N'基礎(chǔ)資料', NULL, NULL, NULL, NULL, NULL, NULL, NULL, N'BasicSetting.frmBasicSetting', 1, 50010, 50000, N'Basic Setting', N'基礎(chǔ)資料設(shè)置', N'基礎(chǔ)資料設(shè)置')
INSERT [dbo].[MODULEFUNCTION_T] ([MODULENAME], [SECTIONNAME], [FUNCTIONNAME], [SORTNO], [PROMPTNAME], [creation_date], [creation_by], [last_update_by], [last_update_date], [description], [WEBPAGE], [DISABLED], [MENU_I], [MENU_J], [EN_MENUNAME], [CN_MENUNAME], [TD_MENUNAME]) VALUES (N'RobotWMS', N'RobotWMS', N'測(cè)試界面', NULL, NULL, NULL, NULL, NULL, NULL, NULL, N'', 1, 60000, 0, N'TEST Page', N'測(cè)試界面', N'測(cè)試界面')
INSERT [dbo].[MODULEFUNCTION_T] ([MODULENAME], [SECTIONNAME], [FUNCTIONNAME], [SORTNO], [PROMPTNAME], [creation_date], [creation_by], [last_update_by], [last_update_date], [description], [WEBPAGE], [DISABLED], [MENU_I], [MENU_J], [EN_MENUNAME], [CN_MENUNAME], [TD_MENUNAME]) VALUES (N'RobotWMS', N'RobotWMS', N'測(cè)試界面', NULL, NULL, NULL, NULL, NULL, NULL, NULL, N'TEST.AnyTest', 1, 60010, 60000, N'TEST Page 1', N'測(cè)試界面1', N'測(cè)試界面1')
INSERT [dbo].[MODULEFUNCTION_T] ([MODULENAME], [SECTIONNAME], [FUNCTIONNAME], [SORTNO], [PROMPTNAME], [creation_date], [creation_by], [last_update_by], [last_update_date], [description], [WEBPAGE], [DISABLED], [MENU_I], [MENU_J], [EN_MENUNAME], [CN_MENUNAME], [TD_MENUNAME]) VALUES (N'RobotWMS', N'RobotWMS', N'測(cè)試界面', NULL, NULL, NULL, NULL, NULL, NULL, NULL, N'TEST.AnyTest2', 1, 60020, 60000, N'TEST Page 2', N'測(cè)試界面2', N'測(cè)試界面2')
INSERT [dbo].[MODULEFUNCTION_T] ([MODULENAME], [SECTIONNAME], [FUNCTIONNAME], [SORTNO], [PROMPTNAME], [creation_date], [creation_by], [last_update_by], [last_update_date], [description], [WEBPAGE], [DISABLED], [MENU_I], [MENU_J], [EN_MENUNAME], [CN_MENUNAME], [TD_MENUNAME]) VALUES (N'RobotWMS', N'RobotWMS', N'測(cè)試界面', NULL, NULL, NULL, NULL, NULL, NULL, NULL, N'TEST.AnyTest3', 1, 60030, 60000, N'TEST Page 3', N'測(cè)試界面3', N'測(cè)試界面3')
INSERT [dbo].[MODULEFUNCTION_T] ([MODULENAME], [SECTIONNAME], [FUNCTIONNAME], [SORTNO], [PROMPTNAME], [creation_date], [creation_by], [last_update_by], [last_update_date], [description], [WEBPAGE], [DISABLED], [MENU_I], [MENU_J], [EN_MENUNAME], [CN_MENUNAME], [TD_MENUNAME]) VALUES (N'RobotWMS', N'RobotWMS', N'測(cè)試界面', NULL, NULL, NULL, NULL, NULL, NULL, NULL, N'TEST.AnyTest4', 1, 60040, 60000, N'TEST Page 4', N'測(cè)試界面4', N'測(cè)試界面4')
INSERT [dbo].[MODULEFUNCTION_T] ([MODULENAME], [SECTIONNAME], [FUNCTIONNAME], [SORTNO], [PROMPTNAME], [creation_date], [creation_by], [last_update_by], [last_update_date], [description], [WEBPAGE], [DISABLED], [MENU_I], [MENU_J], [EN_MENUNAME], [CN_MENUNAME], [TD_MENUNAME]) VALUES (N'RobotWMS', N'RobotWMS', N'測(cè)試界面', NULL, NULL, NULL, NULL, NULL, NULL, NULL, N'TEST.AnyTest5', 1, 60050, 60000, N'TEST Page 5', N'測(cè)試界面5', N'測(cè)試界面5')
INSERT [dbo].[MODULEFUNCTION_T] ([MODULENAME], [SECTIONNAME], [FUNCTIONNAME], [SORTNO], [PROMPTNAME], [creation_date], [creation_by], [last_update_by], [last_update_date], [description], [WEBPAGE], [DISABLED], [MENU_I], [MENU_J], [EN_MENUNAME], [CN_MENUNAME], [TD_MENUNAME]) VALUES (N'RobotWMS', N'RobotWMS', N'測(cè)試界面', NULL, NULL, NULL, NULL, NULL, NULL, NULL, N'TEST.AnyTest6', 1, 60060, 60000, N'TEST Page 6', N'測(cè)試界面6', N'測(cè)試界面6')
INSERT [dbo].[MODULEFUNCTION_T] ([MODULENAME], [SECTIONNAME], [FUNCTIONNAME], [SORTNO], [PROMPTNAME], [creation_date], [creation_by], [last_update_by], [last_update_date], [description], [WEBPAGE], [DISABLED], [MENU_I], [MENU_J], [EN_MENUNAME], [CN_MENUNAME], [TD_MENUNAME]) VALUES (N'RobotWMS', N'RobotWMS', N'基礎(chǔ)資料', NULL, NULL, NULL, NULL, NULL, NULL, NULL, N'BasicSetting.frmVenderInfo', 1, 50020, 50000, N'Vender Info', N'客戶檔案設(shè)置', N'客戶檔案設(shè)置')
INSERT [dbo].[MODULEFUNCTION_T] ([MODULENAME], [SECTIONNAME], [FUNCTIONNAME], [SORTNO], [PROMPTNAME], [creation_date], [creation_by], [last_update_by], [last_update_date], [description], [WEBPAGE], [DISABLED], [MENU_I], [MENU_J], [EN_MENUNAME], [CN_MENUNAME], [TD_MENUNAME]) VALUES (N'RobotWMS', N'RobotWMS', N'基礎(chǔ)資料', NULL, NULL, NULL, NULL, NULL, NULL, NULL, N'BasicSetting.frmMaterialInfo', 1, 50030, 50000, N'Material Info', N'產(chǎn)品檔案設(shè)置', N'產(chǎn)品檔案設(shè)置')
INSERT [dbo].[MODULEFUNCTION_T] ([MODULENAME], [SECTIONNAME], [FUNCTIONNAME], [SORTNO], [PROMPTNAME], [creation_date], [creation_by], [last_update_by], [last_update_date], [description], [WEBPAGE], [DISABLED], [MENU_I], [MENU_J], [EN_MENUNAME], [CN_MENUNAME], [TD_MENUNAME]) VALUES (N'RobotWMS', N'RobotWMS', N'測(cè)試界面', NULL, NULL, NULL, NULL, NULL, NULL, NULL, N'TEST.frmEncryp', 1, 60070, 60000, N'EncryOrDecry', N'加密解密', N'加密解密')
INSERT [dbo].[MODULEFUNCTION_T] ([MODULENAME], [SECTIONNAME], [FUNCTIONNAME], [SORTNO], [PROMPTNAME], [creation_date], [creation_by], [last_update_by], [last_update_date], [description], [WEBPAGE], [DISABLED], [MENU_I], [MENU_J], [EN_MENUNAME], [CN_MENUNAME], [TD_MENUNAME]) VALUES (N'RobotWMS', N'RobotWMS', N'基礎(chǔ)資料', NULL, NULL, NULL, NULL, NULL, NULL, NULL, N'BasicSetting.frmMaterialInfo2', 1, 50040, 50000, N'Material Info 2', N'產(chǎn)品檔案設(shè)置2', N'產(chǎn)品檔案設(shè)置2')
INSERT [dbo].[MODULEFUNCTION_T] ([MODULENAME], [SECTIONNAME], [FUNCTIONNAME], [SORTNO], [PROMPTNAME], [creation_date], [creation_by], [last_update_by], [last_update_date], [description], [WEBPAGE], [DISABLED], [MENU_I], [MENU_J], [EN_MENUNAME], [CN_MENUNAME], [TD_MENUNAME]) VALUES (N'RobotWMS', N'RobotWMS', N'條碼管理中心', NULL, NULL, NULL, NULL, NULL, NULL, NULL, N'', 1, 70000, 0, N'BarCode Center', N'條碼管理中心', N'條碼管理中心')
INSERT [dbo].[MODULEFUNCTION_T] ([MODULENAME], [SECTIONNAME], [FUNCTIONNAME], [SORTNO], [PROMPTNAME], [creation_date], [creation_by], [last_update_by], [last_update_date], [description], [WEBPAGE], [DISABLED], [MENU_I], [MENU_J], [EN_MENUNAME], [CN_MENUNAME], [TD_MENUNAME]) VALUES (N'RobotWMS', N'RobotWMS', N'條碼管理中心', NULL, NULL, NULL, NULL, NULL, NULL, NULL, N'Printing.frmPrintTest1', 1, 70010, 70000, N'BarCode Test 1', N'條碼打印測(cè)試1', N'條碼打印測(cè)試1')
INSERT [dbo].[MODULEFUNCTION_T] ([MODULENAME], [SECTIONNAME], [FUNCTIONNAME], [SORTNO], [PROMPTNAME], [creation_date], [creation_by], [last_update_by], [last_update_date], [description], [WEBPAGE], [DISABLED], [MENU_I], [MENU_J], [EN_MENUNAME], [CN_MENUNAME], [TD_MENUNAME]) VALUES (N'RobotWMS', N'RobotWMS', N'條碼管理中心', NULL, NULL, NULL, NULL, NULL, NULL, NULL, N'', 1, 10030, 10000, N'System Tools', N'系統(tǒng)工具', N'系統(tǒng)工具')
INSERT [dbo].[MODULEFUNCTION_T] ([MODULENAME], [SECTIONNAME], [FUNCTIONNAME], [SORTNO], [PROMPTNAME], [creation_date], [creation_by], [last_update_by], [last_update_date], [description], [WEBPAGE], [DISABLED], [MENU_I], [MENU_J], [EN_MENUNAME], [CN_MENUNAME], [TD_MENUNAME]) VALUES (N'RobotWMS', N'RobotWMS', N'條碼管理中心', NULL, NULL, NULL, NULL, NULL, NULL, NULL, N'', 1, 10031, 10030, N'記事本', N'記事本', N'記事本')
INSERT [dbo].[MODULEFUNCTION_T] ([MODULENAME], [SECTIONNAME], [FUNCTIONNAME], [SORTNO], [PROMPTNAME], [creation_date], [creation_by], [last_update_by], [last_update_date], [description], [WEBPAGE], [DISABLED], [MENU_I], [MENU_J], [EN_MENUNAME], [CN_MENUNAME], [TD_MENUNAME]) VALUES (N'RobotWMS', N'RobotWMS', N'條碼管理中心', NULL, NULL, NULL, NULL, NULL, NULL, NULL, N'', 1, 10032, 10030, N'計(jì)算器', N'計(jì)算器', N'計(jì)算器')
INSERT [dbo].[MODULEFUNCTION_T] ([MODULENAME], [SECTIONNAME], [FUNCTIONNAME], [SORTNO], [PROMPTNAME], [creation_date], [creation_by], [last_update_by], [last_update_date], [description], [WEBPAGE], [DISABLED], [MENU_I], [MENU_J], [EN_MENUNAME], [CN_MENUNAME], [TD_MENUNAME]) VALUES (N'RobotWMS', N'RobotWMS', N'系統(tǒng)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 10040, 10000, N'-', N'-', N'-')


C#代碼實(shí)現(xiàn)如下:

頁(yè)面LOAD事件:

private void frmMainFrame_Load(object sender, EventArgs e)
        {            
            //加載菜單
            LoadMenu2();

        }


private void LoadMenu2()
        {
//從數(shù)據(jù)庫(kù)獲取菜單列表
            string sql = " SELECT T.MENU_I, T.MENU_J, T.EN_MENUNAME, T.CN_MENUNAME, T.TD_MENUNAME,webpage  FROM DBO.MODULEFUNCTION_T T WHERE T.MODULENAME = '" + Application.ProductName + "'   AND T.DISABLED = '1'  ORDER BY T.MENU_J, T.MENU_I ";
            DataTable dt = db.GetTableInfoBySQL(sql, db.sqlDB);
            CreateMainMenu(MainMenuStrip, dt);
        }

        void CreateMainMenu(MenuStrip menuStrip, DataTable dt)
        {
            try
            {
                DataRow[] drs = dt.Select("MENU_J = '0'", "MENU_J");
                if (drs.Length > 0)
                {
                    foreach (DataRow item in drs)
                    {
                        ToolStripMenuItem mi = new ToolStripMenuItem();
                        mi.Text = item["CN_MENUNAME"].ToString();
                        CreateMenuItem(mi, item["MENU_I"].ToString(), dt);
                        menuStrip.Items.Add((ToolStripItem)mi);
                    }
                }
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.Assert(false, ex.Message);
            }
        }

        void CreateMenuItem(ToolStripMenuItem mi, string fatherid, DataTable dt)
        {
            DataRow[] drs = dt.Select("MENU_J='" + fatherid + "'", "MENU_J");
            if (drs.Length > 0)
            {
                foreach (DataRow item in drs)
                {
                    ToolStripMenuItem mitem = new ToolStripMenuItem();
                    mitem.Text = item["CN_MENUNAME"].ToString();
                    mitem.Tag = item;
                    CreateMenuItem(mitem, item["MENU_I"].ToString(), dt);
                    mi.DropDownItems.Add(mitem);
                    mitem.Click += new EventHandler(BindClickToInstinse);
                }
            }
        }

        void BindClickToInstinse(object sender, EventArgs e)
        {
            ToolStripMenuItem mi = sender as ToolStripMenuItem;
            if (mi.HasDropDownItems)//如果有下一級(jí)目錄就不實(shí)例化
            {
                return;
            }           
           

            DataRow dr = mi.Tag as DataRow;

            //切換帳號(hào)
            if (dr["CN_MENUNAME"].ToString() == "切換帳號(hào)")
            {
                Application.Restart();
            }
            //分隔線 不用管
            if (dr["CN_MENUNAME"].ToString() == "-")
            {
                return;
            }
            //退出系統(tǒng)
            if (dr["CN_MENUNAME"].ToString() == "退出系統(tǒng)")
            {
                DialogResult drt = new DialogResult();
                drt = MessageBox.Show(this, "你確定要退出系統(tǒng)嗎", "確認(rèn)", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                if (drt == DialogResult.Yes)
                {
                    Application.Exit();
                }
                else
                {
                    return;
                }
            }            
            //啟動(dòng)記事本
            if (dr["CN_MENUNAME"].ToString() == "記事本")
            {
                System.Diagnostics.Process.Start("notepad.exe");
                return;
            }
            //啟動(dòng)計(jì)算器
            if (dr["CN_MENUNAME"].ToString() == "計(jì)算器")
            {
                System.Diagnostics.Process.Start("calc.exe");
                return;
            }
            try
            {             
                ObjectHandle t = Activator.CreateInstance(Application.ProductName, Application.ProductName + "." + dr["webpage"].ToString());
                Form frm = (Form)t.Unwrap();
                Form[] mdiChilds = this.MdiChildren;
                if (mdiChilds.Length == 1)
                {
                    mdiChilds[0].Close();
                    mdiChilds[0].Dispose();
                }
                frm.MdiParent = this;
                frm.WindowState = FormWindowState.Maximized;
                frm.Top = 0;
                frm.Show();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }



圖一:設(shè)計(jì)頁(yè)面

圖二:效果圖:

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉