[Dev]DevExpress之treelist右键菜单实现

添加BarManager和popupMenu组件:

设置popupMenu组件的Manager属性:

右键点击popupMenu主键,点击Customize选项添加菜单

代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Data;
using DevExpress.XtraTreeList;
using DevExpress.XtraTreeList.Nodes;
using DZAMS.DBUtility;
using System.Windows.Forms;
using DevExpress.XtraEditors;
using System.Drawing;
namespace DZAMS.Admin
{
    public partial class MenuInfo_Frm : DevExpress.XtraEditors.XtraForm
    {
        public MenuInfo_Frm()
        {
            InitializeComponent();

        }

        private void MenuInfo_Frm_Load(object sender, EventArgs e)
        {
            string strSql = "select * from dbo.DZ_MenuInfo order by PARENTID,ID,SORTINDEX ASC";
            DataTable tblDatas = SqlHelper.ExecuteDataset(SqlHelper.conn, CommandType.Text, strSql).Tables[0];

            //设置字段
            treeList1.KeyFieldName = "ID";
            treeList1.ParentFieldName = "PARENTID";
            treeList1.DataSource = tblDatas;
            //递归设置图标
            //DevTreeListView.SetImageIndex(tlCategory, null, 1, 0);
            treeList1.ExpandAll();

            treeList1.LookAndFeel.UseDefaultLookAndFeel = false;
            treeList1.LookAndFeel.UseWindowsXPTheme = true;
        }

        private void treeList1_DoubleClick(object sender, EventArgs e)
        {
            TreeListNode clickedNode = this.treeList1.FocusedNode;
            string name = clickedNode.GetDisplayText("NAME");
            string formname = clickedNode.GetDisplayText("FORMNAME");
        }

        private void treeList1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Right)
            {
                treeList1.ContextMenuStrip = null;

                TreeListHitInfo hInfo = treeList1.CalcHitInfo(new Point(e.X, e.Y));
                TreeListNode node = hInfo.Node;
                treeList1.FocusedNode = node;
                if (node != null)
                {
                    treeList1.ContextMenuStrip = contextMenuStrip1;
                }
            }
        }

        private void treeList1_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            TreeList tree = sender as TreeList;
            if (e.Button == MouseButtons.Right
                    && ModifierKeys == Keys.None
                    && treeList1.State == TreeListState.Regular)
            {
                Point p = new Point(Cursor.Position.X, Cursor.Position.Y);
                TreeListHitInfo hitInfo = tree.CalcHitInfo(e.Location);
                if (hitInfo.HitInfoType == HitInfoType.Cell)
                {
                    tree.SetFocusedNode(hitInfo.Node);
                }

                if (tree.FocusedNode != null)
                {
                    popupMenu1.ShowPopup(p);
                }
            }
        }

        private void barbtnTop_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {

        }

        private void barbtnSub_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {

        }

        private void barbtnModify_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {

        }

        private void barbtnDelete_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            TreeListNode clickedNode = this.treeList1.FocusedNode;
            string name = clickedNode.GetDisplayText("NAME");
            string formname = clickedNode.GetDisplayText("FORMNAME");
            XtraMessageBox.Show("您确定要删除" + formname+"吗?", "警告");
        }
    }
}

效果:

时间: 2024-10-21 00:44:07

[Dev]DevExpress之treelist右键菜单实现的相关文章

关于treelist右键菜单问题,已经单击显示问题

---右键菜单 首先在窗体中拉去一个MenuStrip 然后在TreeList控件中的ContextMenustrip中绑定该Menustrip就可以了,不需要再去写一些花里胡哨的绑定,显示焦点什么的. ---单击显示问题 我做的是单击不同的节点显示不同的数据,比如单击类别节点,就显示类别. 使用treelist的click事件 var entity = tree.GetDataRecordByNode(tree.FocusedNode) as TListModel; //获取到当前节点的信息

[DevExpress] GridControl添加右键菜单

1.Toolbox中找到ContextMenuStrip工具,双击添加 2.点击ContextMenuStrip上小三角,EditItems, 添加选项 3.选择GridControl, 编辑属性ContextMenuStrip,选择刚刚添加的ContextMenuStrip

DevExpress TreeList添加右键菜单问题

添加右键流程: 1.先在窗体上拖两个控件,分别是popupMenu和barManager 2.barManager中绑定form属性为当前窗体名称 3.点击barManager右键选择customize,可直接添加子菜单,如果需要有工具栏.菜单栏.状态栏.怎选择Designer,可添加,然后在选择customize,添加command命令,再command选中菜单中执行命令 4.绑定右键菜单事件:在MouseDown事件中处理事件 --------------------------------

dev gridcontrol添加右键菜单

概述:右键菜单肯定是GridView中经常要使用的一个功能.本文主要描述两个方面:如何在GridView中添加右键菜单,以及如何设置菜单是否可用(enable). 右键菜单肯定是gridview中经常要使用的一个功能.本文主要描述两个方面:如何在GridView中添加右键菜单,以及如何设置菜单是否可用(enable). 一.添加右键菜单 1.在VS工具箱中的“菜单和工具栏”找到ContextMenuStrip控件,双击添加. 2.点击ContextMenuStrip右上方的小三角形,打开编辑项,

dev控件屏蔽gridcontrol和buttonedit右键菜单

DevExpress的很多控件都自带右键菜单,菜单风格又与控件本身差别很多,感觉极不协调,而且都是英文,这篇文章讲述如何屏蔽这些右键菜单. 1.gridcontrol的右键菜单 gridcontrol的右键菜单有两种,第一种是在表格列头右键弹出的菜单,第二种是点击表格列头边上的黑色"钉子"按钮弹出的菜单, 屏蔽它们只需修改属性即可:gridview1->OptionsCustomization->AllowFilter和gridview1->OptionsCustom

DevExpress gridView列标题右键菜单管理

1.添加PopupMenuShowing事件 2.PopupMenuShowing事件中的代码如下: private void gridView1_PopupMenuShowing(object sender, DevExpress.XtraGrid.Views.Grid.PopupMenuShowingEventArgs e) { if (e.MenuType == DevExpress.XtraGrid.Views.Grid.GridMenuType.Column)//判断是否是列标题的右键

JCEF 如何修改右键菜单项(JCEF在右键菜单中添加开发者选项-show dev tools)

需求: 在界面的右键事件中添加一个打开开发者选项的菜单(Show Dev Tools) 所以我们可以看到的是在界面上右键,会有默认的一些菜单项(前进,后退,打印,查看源码),而这些功能并不一定是我们需要的,所以我们首先要做的就是去除这些选项,参考:java cef3 如何禁止右键菜单项 同理,我们只需要在CefContextMenuHandler接口的实现类中去定制我们的菜单项即可,代码如下: public class ContextMenuHandler implements CefConte

DevExpress GridView 添加和设置右键菜单

右键菜单肯定是GridView中经常要使用的一个功能.本文主要描述三个方面:1.如何在GridView中添加右键菜单2.如何设置菜单是否可用(enable) 3.如何获取右键点击事件 一.添加右键菜单1.在VS工具箱中的"菜单和工具栏"找到ContextMenuStrip控件,双击添加. 2.点击ContextMenuStrip右上方的小三角形,打开编辑项,可以添加菜单项. 3.选择gridControl(注意这里不是gridView的属性),在属性中可以找到ContextMenuSt

TreeList属性设置以及右键菜单实现

AllowSort = False,//关闭排序 AllowEdit = False//不能编辑 --------右键菜单实现 添加右键流程: 1.先在窗体上拖两个控件,分别是popupMenu和barManager 2.barManager中绑定form属性为当前窗体名称 3.点击barManager右键选择customize,可直接添加子菜单,如果需要有工具栏.菜单栏.状态栏.怎选择Designer,可添加,然后在选择customize,添加command命令,再command选中菜单中执行