sqlstr = "select ModuleName,ModuleId,pagename from modules WHERE ParentID='" + parentID + "' AND VIsibility=1 ORDER BY ModuleId";
cmd.CommandText = sqlstr;
cmd.Connection = cn; ;
dr = cmd.ExecuteReader();
while (dr.Read())
{
menu.Tag = dr["ModuleId"].ToString();
menu.Text = dr["ModuleName"].ToString();
menu.Name = dr["pagename"].ToString();
menu.ToolTipText = dr["pagename"].ToString();
menuStrip1.Items.Add(menu);
menuStrip1.Show();
}
cn.Close();
dr.Close();
仅添加query.how中的最后一项以添加查询中的所有项目
答案 0 :(得分:3)
while (dr.Read())
{
// If you don't do this, you are just changing the same
// ToolStripMenuItem object all the time.
menu = new ToolStripMenuItem();
menu.Tag = dr["ModuleId"].ToString();
menu.Text = dr["ModuleName"].ToString();
menu.Name = dr["pagename"].ToString();
menu.ToolTipText = dr["pagename"].ToString();
menuStrip1.Items.Add(menu);
menuStrip1.Show();
}
答案 1 :(得分:1)
每次都必须在循环中创建一个新的ToolStripMenuItem。您只需在同一菜单实例上覆盖属性。
答案 2 :(得分:0)
每次阅读新行时都尝试创建菜单的新实例。
这样的事情:
while (dr.Read())
{
var menu = new ToolStripMenuItem();
...
}