数据库表结构如下:create table tbl_privilege
(
privilege_id varchar(30) not null,
privilege_name nvarchar(50) not null,
sonprivilege_id varchar(30) not null,)--测试数据
insert into tbl_privilege values('P01','用户管理','P')
insert into tbl_privilege values('P0101','添加','P01')
insert into tbl_privilege values('P0102','修改','P01')
insert into tbl_privilege values('P0103','查询','P01')------------------------------------------------------
应用程序代码如下:
  public partial class FrmMain : Form   //主窗体
    {
         public FrmMain(DataTable dt)
        {
            InitializeComponent();
  //从顶级菜单开始加载
            LoadSubMenu(dt, "P", menuStrip1.Items);
}        /// <summary>
        /// 递归加载子菜单
        /// </summary>
        /// <param name="dt">菜单数据表</param>
        /// <param name="supauthid">父菜单ID</param>
        /// <param name="parent">父菜单集合</param>
        private void LoadSubMenu(DataTable dt, string supauthid, ToolStripItemCollection parent)
        {
           
            DataRow[] rows = dt.Select(string.Format("sonprivilege_Id='{0}'", supauthid));
            foreach (DataRow item in rows)
            {
                ToolStripMenuItem menu = new ToolStripMenuItem(item["privilege_Name"].ToString());                parent.Add(menu);                LoadSubMenu(dt, item["privilege_Id"].ToString(), menu.DropDownItems);
 
            }
        }
--------------------------------------------------------------------------------------------
请问如果我要添加单击查询、修改、添加项时的事件应该怎么做呢?(跳出各子窗体),我是初学者请具体加注释谢谢!!!

解决方案 »

  1.   


    parent.Add(menu); 
    上面加以下代码menu.Tag = item["privilege_Id"].ToString();      //记录菜单ID
    menu.Click += new EventHandler( MenuItem_Click );   //绑定事件
    再添加一个方法,用来响应菜单单击事件        void MenuItem_Click( object sender, EventArgs e )
            {
                ToolStripMenuItem menu = sender as ToolStripMenuItem;
                switch ( menu.Tag.ToString() )
                {
                    case "P0101":
                        //添加,这里放你执行添加功能的代码
                        break;                case "P0102":
                        //修改,这里放修改功能的代码
                        break;                //其他的菜单处理代码
                }
            }
      

  2.   


    ToolStripMenuItem menu = new ToolStripMenuItem();
    menu.ShortcutKeys = Keys.Control | Keys.L;    //设置成CTRL+L
      

  3.   

    ToolStripMenuItem tsm= new ToolStripMenuItem (); 
    tsm.Click += new System.EventHandler(this.tsm_Click);
      

  4.   


    toolstrip没有ShortcutKeys  属性?
      

  5.   

    还真不懂存模块的概念
    应该不是存储过程吧,
    难道SQL SERVER的扩展存储过程