1:动态绑定右键菜单
#region 动态生成右键菜单子菜单
/// <summary>
/// 绑定菜单
/// </summary>
/// <param name="tv">根据不同的tv生成右键菜单项</param>
private void BindMenu(TreeView tv)
{
ctmsMenu.Items.Clear();//清空菜单项避免重负添加
if (tv.Name == "tvQueuing")//排队车辆的tv那右键菜单就只有出站车辆,暂停车辆
{
ToolStripMenuItem menu0 = GetMenuItem("出站");
tv.ContextMenuStrip = ctmsMenu;
menu0.Click += new EventHandler(OutToolStripMenuItem_Click);//添加事件
ctmsMenu.Items.Add(menu0);//添加一项
ToolStripMenuItem menu1 = GetMenuItem("暂停");
menu1.Click += new EventHandler(IntToolStripMenuItem_Click);
ctmsMenu.Items.Add(menu1);
}
if (tv.Name == "tvDeparture")//出站车辆tv那右键菜单就只有排队车辆,暂停车辆
{
ToolStripMenuItem menu0 = GetMenuItem("排队");
tv.ContextMenuStrip = this.ctmsMenu;
menu0.Click += new EventHandler(OrderToolStripMenuItem_Click);
ctmsMenu.Items.Add(menu0);
ToolStripMenuItem menu1 = GetMenuItem("暂停");
menu1.Click += new EventHandler(IntToolStripMenuItem_Click);
ctmsMenu.Items.Add(menu1);
}
if (tv.Name == "tvPause")//暂停车辆tv那右键菜单就只有出站车辆,排队车辆
{
ToolStripMenuItem menu0 = GetMenuItem("出站");
tv.ContextMenuStrip = this.ctmsMenu;
menu0.Click += new EventHandler(OutToolStripMenuItem_Click);
ctmsMenu.Items.Add(menu0);
ToolStripMenuItem menu1 = GetMenuItem("排队");
menu1.Click += new EventHandler(OrderToolStripMenuItem_Click);
ctmsMenu.Items.Add(menu1);
}
}
/// <summary>
/// 菜单项事件响应
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void toolStripMenuItem_Click(object sender, EventArgs e)
{
ToolStripMenuItem menu = sender as ToolStripMenuItem;
}
/// <summary>
/// 生成菜单项
/// </summary>
/// <param name="txt"></param>
/// <returns></returns>
private ToolStripMenuItem GetMenuItem(string txt)
{
ToolStripMenuItem menuItem = new ToolStripMenuItem();
menuItem.Text = txt;
return menuItem;
}
private void tvQueuing_MouseClick(object sender, MouseEventArgs e)
{
isChecked = true;//选中节点了
tvQueuing.SelectedNode = tvQueuing.GetNodeAt(e.X, e.Y);
DragWho = 1;
if (e.Button == MouseButtons.Right)
{
BindMenu(tvQueuing);
}
}
private void tvDeparture_MouseClick(object sender, MouseEventArgs e)
{
isChecked = true;//选中节点了
tvDeparture.SelectedNode = tvDeparture.GetNodeAt(e.X, e.Y);
DragWho = 2;//出站tv
if (e.Button == MouseButtons.Right)
{
BindMenu(tvDeparture);
}
//timeDeparture.Enabled = false;
}
private void tvPause_MouseClick(object sender, MouseEventArgs e)
{
isChecked = true;//选中节点了
tvPause.SelectedNode = tvPause.GetNodeAt(e.X, e.Y);
DragWho = 3;//暂停tv
if (e.Button == MouseButtons.Right)
{
BindMenu(tvPause);
}
}
#endregion
/// <summary>
/// 生成菜单项
/// </summary>
/// <param name="txt"></param>
/// <returns></returns>
private ToolStripMenuItem GetMenuItem(string txt)
{
ToolStripMenuItem menuItem = new ToolStripMenuItem();
menuItem.Text = txt;
return menuItem;
}