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 为菜单项,要做的也就是把数据库里的数据添加到这个菜单项的下一级! 那我该如何实现呢?
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"); } 改成这样也不行!
1、创建菜单后添加一行代码:mnuXXXXX.Click += EventHander(mnuXXXXX_Click);
然后再写一个方法:private mnuXXXX_Click(object sender,Ev..... e){}
有一两个单词不会写了,呵呵。
2、在创建菜单时,它的构造函数重载方法中可以带事件的定义。具体不记得了,看看帮助吧。
{
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 为菜单项,要做的也就是把数据库里的数据添加到这个菜单项的下一级!
那我该如何实现呢?
{
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");
}
改成这样也不行!