在winform中已在设计时手动创建了一些菜单,并且有事件.
现在我要从数据库中读取一些数据并添加到菜单中,
虽然菜单可以显示,但不知如何写事件!
请各位大虾帮帮忙!
CSDN只能让我给10分,没办法!各位大虾行行好,,就帮帮小弟吧!谢谢!

解决方案 »

  1.   

    将所有事件委托到一个方法,提供一个参数用于识别,用switch分开处理
      

  2.   

    有两种方法。
    1、创建菜单后添加一行代码:mnuXXXXX.Click += EventHander(mnuXXXXX_Click);
    然后再写一个方法:private mnuXXXX_Click(object sender,Ev..... e){}
    有一两个单词不会写了,呵呵。
    2、在创建菜单时,它的构造函数重载方法中可以带事件的定义。具体不记得了,看看帮助吧。
      

  3.   

    public void LoadType()
            {
                OleDbCommand cmd = new OleDbCommand("select * from type",conn);            OleDbDataReader dr = cmd.ExecuteReader();
                type.DropDownItems.Clear();
                while (dr.Read())
                {
                    MenuItem mitm = new MenuItem(dr["type_name"].ToString(), new EventHandler(DyMenuItem));
                    type.DropDownItems.Add(mitm.Text);
                    menuItem.Click += new EventHandler(menuItem_Click);
                }
                dr.Close();        }
    我是这样子做的...
    其中 type 为菜单项,要做的也就是把数据库里的数据添加到这个菜单项的下一级!
    那我该如何实现呢?
      

  4.   

    public void LoadType()
            {
                OleDbCommand cmd = new OleDbCommand("select * from type",conn);            OleDbDataReader dr = cmd.ExecuteReader();
                type.DropDownItems.Clear();
                while (dr.Read())
                {
                    MenuItem mitm = new MenuItem(dr["type_name"].ToString());
                    mitm.Click += new EventHandler(DyMenuItem);
                    type.DropDownItems.Add(mitm.Text);
                }
                dr.Close();        }        public void DyMenuItem(object obj,EventArgs e)
            {
                MessageBox.Show("test");
            }
    改成这样也不行!