实现gdv设置的抽象对象,不用每个gdv控件都添加sizechanged事件,只需执行gdc绑定sql函数,在其中会自动添加SizeChanged事件。

//2016.5.13 by sngk

//根据控件大小自动调整GridView列宽模式,尽量使列充满

//2016.11.19 实现自动添加sizechanged事件

//该函数只执行一次,在赋值时

public static void BestFitGridViewColumnsWidth(DevExpress.XtraGrid.GridControl gdc,string sql, int hidecols=0)

{

DevExpress.XtraGrid.Views.Grid.GridView gdv = (DevExpress.XtraGrid.Views.Grid.GridView)gdc.Views[0];

//绑定数据

gdv.GridControl.DataSource = DBFactorySingleton.GetInstance().Factory.GetDataTable(sql);

for (int i = 0; i < hidecols;i++ )

gdv.Columns[i].Visible = false;

     //添加事件

gdc.SizeChanged += BestFitDevGrid_Size_Changed_Event;

//虽然每次窗体变化时都会激发sizechange事件,但窗体第一次load时不会触发,所以加一句调整语句

BestFitGridViewWidth(gdv);

}

//2016.11.19 技术进步,后台为控件添加事件

public static void BestFitDevGrid_Size_Changed_Event(object sender, EventArgs e)

{

//获得gdc对象

DevExpress.XtraGrid.GridControl gdc=(DevExpress.XtraGrid.GridControl)sender;

//取得gdc的第一个gdv对象

DevExpress.XtraGrid.Views.Grid.GridView gdv = (DevExpress.XtraGrid.Views.Grid.GridView)gdc.Views[0];

//设置最适合列宽的判断行数

gdv.BestFitMaxRowCount = 500;

BestFitGridViewWidth(gdv);

}

//根据窗体大小判断gdv最合适大小

public static void BestFitGridViewWidth(DevExpress.XtraGrid.Views.Grid.GridView gdv)

{

//先设置最小列宽

gdv.BestFitColumns();

//获取所有列总最小宽度

int tt = 0;

for (int i = 0; i < gdv.Columns.Count; i++)

{

if (gdv.Columns[i].Visible)

tt += gdv.CalcColumnBestWidth(gdv.Columns[i]);

}

//如果有指示列,加上其宽度

if (gdv.OptionsView.ShowIndicator)

tt += gdv.IndicatorWidth;

//根据宽度调整列显示模式

if (tt < gdv.ViewRect.Width)

gdv.OptionsView.ColumnAutoWidth = true;

else

gdv.OptionsView.ColumnAutoWidth = false;

}

自动为DEV GridView控件添加SizeChanged事件的更多相关文章

  1. asp.net中的ListBox控件添加双击事件

    问题:在Aspx页里的ListBox A中添加双击事件,将选中项添加到另一个ListBox B中,双击ListBox B中的选中项,删除当前选中项 页面: <asp:ListBox ID=&qu ...

  2. Winform 中DataGridView、dev Gridview控件添加行标题

    有很多种方法. 1.可以在DataGridView控件中的RowStateChanged事件改变行标题单元格的值(Row.HeaderCell.Value) /// <summary> / ...

  3. jQuery对新添加的控件添加响应事件

    1. 通过id和类控制 <html> <head> <script src="jquery.js"></script> <sc ...

  4. easyui datagrid的editor编辑器如何为validatebox控件添加改变事件

    项目中需要为行编辑器Editor的某个列的文本框添加改变事件 需求:新增行时,为用户名输入特殊字符进行验证,不允许保存用户数据 html页面 <table id="gridlist&q ...

  5. C#Winfrom中,窗体加载时会自动执行一次控件的textchange事件,怎么让它不执行?

    http://zhidao.baidu.com/link?url=iTSyfa5_RJBSb37S8efdWoL5eDMrnxeAm-prhGSNBXqdP9r7PzNDQTc7gVzJgCNdzli ...

  6. 给input的按钮控件添加onserverclick事件

    前台: <input type="button" value="登录" id="login" onclick="" ...

  7. GridView控件点击单元格如何获取该列的列标题

    本博文Insus.NET教你实现在GridView控件中,用mouse点击某单元格之后,希望能获取到该列的列标题. 创建一个网页,创建一个GridView控件: 去cs绑定数据给GridView控件: ...

  8. ASP.NET编辑与更新数据(非GridView控件实现)

    Insus.NET在实现<ASP.NET开发,从二层至三层,至面向对象 (5)>http://www.cnblogs.com/insus/p/3880606.html 中,没有把数据编辑与 ...

  9. repeater中后台动态为控件添加属性

    在此贴出repeater中的ItemDataBound事件中的代码: private void ItemDataBound(object sender, RepeaterItemEventArgs e ...

随机推荐

  1. webpack--安装,使用

    1. webpack 1.1. webpack介绍 webpack是一个资源的打包工具,目前最新为webpack3,可以将 .js, .css , image等静态资源当做一个模块来进行打包,那么每一 ...

  2. web标准中定义id与class有什么区别吗

      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/x ...

  3. win10下安装mongodb(解压版)

    首先到官网下载安装包.(https://www.mongodb.com/download-center#community) 1.创建mongodb目录 2.配置文件mongodb.config 3. ...

  4. 洛谷P1248 加工生产调度

    流水作业调度问题 有\(N\)个作业要在两台机器\(M_1\)和\(M_2\)组成的流水线上完成加工.每个作业\(i\)都必须先花时间\(a_i\)在\(M_1\)上加工,然后花时间\(b_i\)在\ ...

  5. 本地 vs. 云:大数据厮杀的最终幸存者会是谁?— InfoQ专访阿里云智能通用计算平台负责人关涛

    摘要: 本地大数据服务是否进入消失倒计时?云平台大数据服务最终到底会趋向多云.混合云还是单一公有云?集群规模增大,上云成本将难以承受是误区还是事实?InfoQ 将就上述问题对阿里云智能通用计算平台负责 ...

  6. PyCharm使用之利用Docker镜像搭建Python开发环境

      在我们平时使用PyCharm的过程中,一般都是连接本地的Python环境进行开发,但是如果是离线的环境呢?这样就不好搭建Python开发环境,因为第三方模块的依赖复杂,不好通过离线安装包的方式安装 ...

  7. 重磅!容器集群监控利器 阿里云Prometheus 正式免费公测

    Prometheus 作为容器生态下集群监控的首选方案,是一套开源的系统监控报警框架.它启发于 Google 的 borgmon 监控系统,并于 2015 年正式发布.2016 年,Prometheu ...

  8. Docker Remote API使用准备

    1 修改配置文件 CentOS: /etc/sysconfig/docker Ubuntu: /etc/init/docker.conf 1.添加: DOCKER_OPTS='-H tcp://0.0 ...

  9. PHP如何输出合并单元格的表

    https://mp.weixin.qq.com/s/ChPIKIv9tqmuqGyfc9Zi7Q 合并单元格的表,很多地方可以见到,比如购物车,订单合并等,今天给大家讲解一下,如何操作,虽然我用的l ...

  10. jQuery $.isNumeric vs. $.isNaN vs. isNaN

    在jQuery中,有几种方式可以判断一个对象是否是数字,或者可否转换为数字. 首先,jQuery.isNaN()在最新版本中已经被移除了(1.7之后),取而代之的是  jQuery.isNumeric ...