随笔 - 259  文章 - 0  评论 - 127  阅读 - 80万

GridControl 继承写法修改自己的GridControl

代码如下:

复制代码
View Code
namespace GridControlDemo
{
    class MyGridControl : GridControl
    {
        protected override BaseView CreateDefaultView()
        {
            return CreateView("MyGridView");
        }
        protected override void RegisterAvailableViewsCore(InfoCollection collection)
        {
            base.RegisterAvailableViewsCore(collection);
            collection.Add(new MyGridViewInfoRegistrator());
        }
    }

    public class MyGridViewInfoRegistrator : GridInfoRegistrator
    {
        public override string ViewName { get { return "MyGridView"; } }
        public override BaseView CreateView(GridControl grid)
        {
            return new MyGridView(grid as GridControl);
        }
    }


    public class MyGridView : GridView
    {
        /// <summary>
        ///函数
        /// </summary>
        /// <param name="ownerGrid"></param>
        public MyGridView(GridControl ownerGrid) : base(ownerGrid) { }

        /// <summary>
        /// 函数
        /// </summary>
        public MyGridView()
        {

        }

        /// <summary>
        /// 初始化一些默认值
        /// </summary>
        public override void BeginInit()
        {
            base.BeginInit();
            // 设置为多选
            this.OptionsSelection.MultiSelect = true;
            this.OptionsSelection.MultiSelectMode = DevExpress.XtraGrid.Views.Grid.GridMultiSelectMode.RowSelect;
            this.FocusedRowHandle = 0;
            this.Focus(); 
            //显示筛选
            this.OptionsView.ShowAutoFilterRow = true;
            //隐藏提示
            this.OptionsView.ShowGroupPanel = false;
            //禁止编辑
            this.OptionsBehavior.Editable = false;
            this.OptionsView.EnableAppearanceEvenRow = false; //是否启用偶数行外观
            this.OptionsView.EnableAppearanceOddRow = false; //是否启用奇数行外观
            this.OptionsView.ShowFilterPanelMode = ShowFilterPanelMode.Never; //是否显示过滤面板

            this.OptionsCustomization.AllowColumnMoving = false; //是否允许移动列
            this.OptionsCustomization.AllowColumnResizing = false; //是否允许调整列宽
            this.OptionsCustomization.AllowGroup = false; //是否允许分组
            this.OptionsCustomization.AllowFilter = false; //是否允许过滤
            this.OptionsCustomization.AllowSort = true; //是否允许排序  
        }

        public override void EndInit()
        {
            base.EndInit();
            this.SelectionChanged += MyGridView_SelectionChanged;
        }

        void MyGridView_SelectionChanged(object sender, DevExpress.Data.SelectionChangedEventArgs e)
        {
            int[] grvarry = this.GetSelectedRows();
            if (grvarry.Length > 1)
            {
               /* for (int i = 0; i < grvarry.Length; i++)
                {
                    GetDataRowList[i] = this.GetDataRow(grvarry[i]);
                }*/
                GetList = grvarry;

            }
            else
            {
                GetDataRowInfo = this.GetFocusedDataRow();
            }
            //GetDataRowInfo = this.GetFocusedDataRow();
        } 

        /// <summary>
        /// 获取用户选择行数据
        /// </summary>
        public DataRow GetDataRowInfo { get; set; }
        /// <summary>
        /// 返回选择行数组
        /// </summary>
        public DataRow[] GetDataRowList { get; set; }
        /// <summary>
        /// 返回用户选择行索引
        /// </summary>
        public int[] GetList { get; set; }
    }
}
复制代码
posted on   freexiaoyu  阅读(1969)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
< 2012年9月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 1 2 3 4 5 6

点击右上角即可分享
微信分享提示