(1条消息) TreeView与ContextMenuStrip
/// <summary>
/// TreeView的MouseUp事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void treeView1_MouseUp(object sender, MouseEventArgs e)
{
//根据鼠标在treeview点击的位置获取节点
//TreeView控件,SelectNode属性更改只响应左键点击事件。右键点击,按下选择了节点。弹起,选择丢失。
//实际工作中,经常需要面对的是右键直接选择,并弹出快捷菜单。故在鼠标弹起时,根据位置,设定SelectNode
this.treeView1.SelectedNode = this.treeView1.GetNodeAt(e.X, e.Y);
if (e.Button == MouseButtons.Right)//仅响应右键
{
//Node.Levle属性,确定是哪一级节点
if (this.treeView1.SelectedNode != null && this.treeView1.SelectedNode.Level == 1)
{
//Show两个参数,Control和Point。
//this指定相对的控件位置
//Point为treeview点击的位置,20是为了显示ContextMenuStript时不遮挡Node,可以看到点击的Node
this.contextMenuStrip1.Show(this,new Point(e.X+20,e.Y));
}
}
}
/// <summary>
/// ContextMenuStript选项,toolStripMenuItem点击事件
/// 删除
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void toolStripMenuItem_Delete_Click(object sender, EventArgs e)
{
if (this.treeView1.SelectedNode != null)
{
//将选择的节点删除
this.treeView1.SelectedNode.Remove();
}
}
0条评论