TreeView与ContextMenuStrip

来源:互联网 发布:手机qq java通用版 编辑:程序博客网 时间:2024/05/22 04:51

工作中经常用到TreeView控件,绑定响应右键快捷菜单。但经常忘了它的一些用法,几个要注意的点,每次用到都去查,翻看一些资料。于是,整理了一番,记录下来,便于以后随时查阅。

1、界面设计


一个treeview控件,一个ContextMenuScript控件。ContextMenuScript添加一个Item删除

TreeView添加MouseUp事件。Item添加Click事件

2、代码

/// <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 0
原创粉丝点击