自动为DEV GridView控件添加SizeChanged事件
实现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事件的更多相关文章
- asp.net中的ListBox控件添加双击事件
问题:在Aspx页里的ListBox A中添加双击事件,将选中项添加到另一个ListBox B中,双击ListBox B中的选中项,删除当前选中项 页面: <asp:ListBox ID=&qu ...
- Winform 中DataGridView、dev Gridview控件添加行标题
有很多种方法. 1.可以在DataGridView控件中的RowStateChanged事件改变行标题单元格的值(Row.HeaderCell.Value) /// <summary> / ...
- jQuery对新添加的控件添加响应事件
1. 通过id和类控制 <html> <head> <script src="jquery.js"></script> <sc ...
- easyui datagrid的editor编辑器如何为validatebox控件添加改变事件
项目中需要为行编辑器Editor的某个列的文本框添加改变事件 需求:新增行时,为用户名输入特殊字符进行验证,不允许保存用户数据 html页面 <table id="gridlist&q ...
- C#Winfrom中,窗体加载时会自动执行一次控件的textchange事件,怎么让它不执行?
http://zhidao.baidu.com/link?url=iTSyfa5_RJBSb37S8efdWoL5eDMrnxeAm-prhGSNBXqdP9r7PzNDQTc7gVzJgCNdzli ...
- 给input的按钮控件添加onserverclick事件
前台: <input type="button" value="登录" id="login" onclick="" ...
- GridView控件点击单元格如何获取该列的列标题
本博文Insus.NET教你实现在GridView控件中,用mouse点击某单元格之后,希望能获取到该列的列标题. 创建一个网页,创建一个GridView控件: 去cs绑定数据给GridView控件: ...
- ASP.NET编辑与更新数据(非GridView控件实现)
Insus.NET在实现<ASP.NET开发,从二层至三层,至面向对象 (5)>http://www.cnblogs.com/insus/p/3880606.html 中,没有把数据编辑与 ...
- repeater中后台动态为控件添加属性
在此贴出repeater中的ItemDataBound事件中的代码: private void ItemDataBound(object sender, RepeaterItemEventArgs e ...
随机推荐
- json原生解析
身为新手,在运用网络解析json数据的时候,发现先会用Gson等框架解析json,然后就懒起来学原生解析了,这下在看别人写的demo的时候就尴尬了,一块块的,不懂写什么,气氛十分尴尬. 不多说,先来条 ...
- Windows下更改pip镜像源
其实学习是一个逐步探索的过程.今天因为把带有中文的Python安装路径给改了,结果带来很大的麻烦,导致在命令行输入vietualenv和其他一些第三方模块都出现Fatal error in launc ...
- .NET EasyUI datebox添加清空功能
前言,前段时间的项目使用EasyUI框架搭建,使用了其自带的一系列组件.但对于datebox,其功能别的不多说,令人蛋疼的是它居然没有清空功能,这让在搜索区域中摆了日期条件的咋整啊,没办法,既然用了这 ...
- 为什么要用Spring的依赖注入
最近写了一些Spring项目,用到了依赖注入,但是不知道为甚么要用,后来在知乎上看了一些大家的回答,觉得很精辟,遂简单总结一下. 主要是实现类之间的解耦,假如A类依赖B类,在实例化A类的话也要new一 ...
- Qt添加右键菜单
QAction *hideAction = new QAction(tr(" 隐藏"),this); addAction(hideAction); setContextMenuPo ...
- Linux C socket 基于 UDP
/************************************************************************* > File Name: serve ...
- oracle怎么捕获表上的DML语句(不包括select)语句)
可以采用dml触发器,如 CREATE OR REPLACE TRIGGER tr_capt_sql BEFORE DELETE OR INSERT OR UPDATE ON manager.test ...
- 阿里云发布SaaS加速器,用宜搭,像搭积木一样搭应用
宜搭让不会编码的人也能快速搭建SaaS应用,大幅提升研发效率. (图:阿里云智能产品管理部总经理马劲在2019阿里云峰会·北京现场进行宜搭应用搭建演示. ) 3月21日,在2019阿里云峰会·北京上, ...
- uml图的五种关系 标签: uml 2016-12-18 21:47 221人阅读 评论(25) 收藏
统一建模语言 Unified Modeling Language (UML)又称统一建模语言或标准建模语言,是始于1997年一个OMG标准,它是一个支持模型化和软件系统开发的图形化语言,为软件开发的所 ...
- @codeforces - 1209G2@ Into Blocks (hard version)
目录 @description@ @solution@ @accepted code@ @details@ @description@ 定义一个序列是好的,当且仅当这个序列中,相等的两个数之间的所有数 ...