zoukankan      html  css  js  c++  java
  • [原] XAF ListView 凍結列

     

    using System;
    using System.ComponentModel;
    using System.Collections.Generic;
    using System.Diagnostics;
    using System.Text;
    
    using DevExpress.ExpressApp;
    using DevExpress.ExpressApp.Actions;
    using DevExpress.Persistent.Base;
    using DevExpress.ExpressApp.Win.Editors;
    using DevExpress.XtraGrid.Views.Grid;
    using DevExpress.XtraGrid.Columns;
    using DevExpress.Utils.Menu;
    using DevExpress.XtraGrid.Menu;
    using System.Drawing;
    using DevExpress.ExpressApp.Utils;
    
    namespace E1554.Module
    {
        public partial class FixclomunViewController : ViewController<ListView>
        {
            public FixclomunViewController()
            {
                InitializeComponent();
              
            }
    
            protected override void OnDeactivated()
            {
                base.OnDeactivated();            
            }
    
            protected override void OnViewControlsCreated()
            {
                base.OnViewControlsCreated();
                // Access and customize the target View control.
                GridListEditor listEditor = ((ListView)View).Editor as GridListEditor;
                if (listEditor != null)
                {
                    XafGridView gridView = listEditor.GridView as XafGridView;
                    gridView.PopupMenuShowing += new PopupMenuShowingEventHandler(gridView_PopupMenuShowing);
                }
    
            }
            private void gridView_PopupMenuShowing(object sender, PopupMenuShowingEventArgs e)
            {
                if (e.MenuType == DevExpress.XtraGrid.Views.Grid.GridMenuType.Column)
                {
                    DevExpress.XtraGrid.Menu.GridViewColumnMenu menu = e.Menu as GridViewColumnMenu;              
                    
                    if (menu.Column != null)
                    {
                      
                        //Adding new items
                        DXPopupMenu popMenu = new DXPopupMenu();
                        popMenu.Caption = "凍結列";
                        menu.Items.Add(popMenu);
    
                        popMenu.Items.Add(CreateCheckItem("取消", menu.Column, FixedStyle.None,
                         ImageLoader.Instance.GetImageInfo("NotFixed").Image));
                        popMenu.Items.Add(CreateCheckItem("左側", menu.Column, FixedStyle.Left,
                         ImageLoader.Instance.GetImageInfo("FixedLeft").Image));
                        popMenu.Items.Add(CreateCheckItem("右側", menu.Column, FixedStyle.Right,
                          ImageLoader.Instance.GetImageInfo("FixedRight").Image));
                    }
                    
                }
            }
    
            //Create a menu item 
            DXMenuCheckItem CreateCheckItem(string caption, GridColumn column, FixedStyle style, Image image)
            {
                DXMenuCheckItem item = new DXMenuCheckItem(caption, column.Fixed == style,
                  image, new EventHandler(OnFixedClick));
                item.Tag = new MenuInfo(column, style);
                return item;
            }
    
            //Menu item click handler 
            void OnFixedClick(object sender, EventArgs e)
            {
                DXMenuItem item = sender as DXMenuItem;
                MenuInfo info = item.Tag as MenuInfo;
                if (info == null) return;
                info.Column.Fixed = info.Style;
            }
    
            //The class that stores menu specific information 
            class MenuInfo
            {
                public MenuInfo(GridColumn column, FixedStyle style)
                {
                    this.Column = column;
                    this.Style = style;
                }
                public FixedStyle Style;
                public GridColumn Column;
            }
        }
    }
  • 相关阅读:
    康拓展开和康拓逆展开
    快速乘法(基于快速幂)
    扩展欧几里德 POJ 1061
    九度OJ 1552座位问题(dp)
    UVA-10462.Is There A Second Way Left(Kruskal+次小生成树)
    POJ-1679.The Unique MST.(Prim求次小生成树)
    次小生成树(Prim + Kruaskal)
    POJ-1287.Network(Kruskal + Prim + Prim堆优化)
    最小生成树基础算法(Prim + Krustal)
    POJ-2492.A Bug's Life(带权并查集)
  • 原文地址:https://www.cnblogs.com/Tonyyang/p/5305516.html
Copyright © 2011-2022 走看看