// 允许增加一个 checkbox 列 
public class DgvBase : DataGridViewX
{
protected override void OnColumnAdded(DataGridViewColumnEventArgs e)
{
base.OnColumnAdded(e);
//if (e.Column.ValueType == typeof(int) || e.Column.ValueType == typeof(long) || e.Column.ValueType == typeof(float)
// || e.Column.ValueType == typeof(double) || e.Column.ValueType == typeof(decimal))
if (e.Column.ValueType == typeof(decimal)) e.Column.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
} protected override void OnRowPostPaint(DataGridViewRowPostPaintEventArgs e)
{
base.OnRowPostPaint(e); //this.Rows[e.RowIndex].Selected ? this.RowHeadersDefaultCellStyle.SelectionForeColor :
TextRenderer.DrawText(e.Graphics, (e.RowIndex + ).ToString(), this.RowHeadersDefaultCellStyle.Font, new Rectangle(e.RowBounds.Location.X, e.RowBounds.Location.Y, this.RowHeadersWidth - , e.RowBounds.Height), this.RowHeadersDefaultCellStyle.ForeColor, TextFormatFlags.VerticalCenter | TextFormatFlags.Right);
} protected override void OnCellClick(DataGridViewCellEventArgs e)
{
base.OnCellClick(e);
// 设置此列在点击时可改变值
DataGridViewColumn dc = this.Columns [e.ColumnIndex ];
if (dc.ReadOnly && dc.Name == "IsSelected")
this[e.ColumnIndex, e.RowIndex].Value = !Generic.ToBoolean(this[e.ColumnIndex, e.RowIndex].Value);
}
} public static class DgvExtensions
{
public static void DataBind(this DgvBase dgv, DataTable dt)
{
if (dt != null && !dt.Columns.Contains("IsSelected"))
{
DataColumn dc = dt.Columns.Add("IsSelected", typeof(bool));
dc.SetOrdinal();
}
dgv.DataSource = dt;
}
}

一个继承的 DataGridView的更多相关文章

  1. 一个通用的DataGridView导出Excel扩展方法(支持列数据格式化)

    假如数据库表中某个字段存放的值“1”和“0”分别代表“是”和“否”,要在DataGridView中显示“是”和“否”,一般用两种方法,一种是在sql中直接判断获取,另一种是在DataGridView的 ...

  2. 封装TableView有可能用到的数据结构和UITableViewCell的一个继承类

    最近4年的时间,我已经做了5个App完全独立开发, 工作经历5个App, 维护了两个App. 在这期间用的最多的是UITableView, 因此也有许多感觉可以封装的. 现在就是我封装的. RXCel ...

  3. 让一个继承unittest.TestCase的类下的setUp和tearDown只执行一次

    知道unittest单元测试框架的朋友应该都知道, 执行继承了unittest.TestCase的类下每个test开头的方法(就是用例)时,都会执行setUp和tearDown,如下面的例子所示: i ...

  4. 一个继承TList的例子

    类声明部分: TDMSTrains = class(TList) private FHashed: Boolean; FHashList: TFpHashList; FOwnsObjects: Boo ...

  5. 共用tableview一个继承类里面有

    里面的复用cell会不会混在一起呢?

  6. 分享一个带有合计行功能的DataGridView扩展

    因为一个Winform的项目中需要用到带有合计行的表格,并且需要满足以下需求: 合计行可自动对需要求和的列进行求和计算; 合计行必须固定(冻结)在表格的最底部,且其位置不受滚动条的滚动而移动; 可以设 ...

  7. JPA 菜鸟教程 15 继承-一个表-SINGLE_TABLE

    原地址:http://blog.csdn.net/JE_GE/article/details/53678422 继承映射策略 一个类继承结构一个表的策略,最终只生成一个表,这是继承映射的默认策略. 举 ...

  8. 新秀翻译(一个)——Java在继承和组合

    阅读英文的程序猿的能力,这是非常重要的.过去的几年中一直在学习英语,今天心血来潮,在网上找什么鲍文简要翻译. 普通级,能力有限,看官还请大家多多指点. 译文: 本文将会举例说明Java中继承和组合的概 ...

  9. DataGridView控件

    DataGridView控件 DataGridView是用于Windows Froms 2.0的新网格控件.它可以取代先前版本中DataGrid控件,它易于使用并高度可定制,支持很多我们的用户需要的特 ...

随机推荐

  1. JVM学习(二):垃圾回收

    我刚工作的时候问一个前辈,我们能针对JVM做出什么样的优化.前辈说,我们系统现在的性能并不需要调优,用默认的配置就能满足现在的需求了.我又问,那你为什么要看JVM相关的书呢?前辈微微一笑,悠悠地来了句 ...

  2. Delphi 画刷与作图区域

    樊伟胜

  3. django-spirt 论坛主题

    官方文档 新建项目 django_sprit 文件夹 cd django_sprit pip install django-spirit spirit startproject mysite cd m ...

  4. 微软宣布加入机密计算联盟,与谷歌和BAT 等巨头联手保护数据安全

    联盟创始成员还包括阿里巴巴.Arm.百度.谷歌.IBM.英特尔.红帽.瑞士电信和腾讯等科技公司,它提供了一个让行业聚集起来的机会,以促进使用机密计算来更好地保护数据. 建立机密计算联盟的需求源于这样一 ...

  5. P3731 二分图匹配必经边

    题意经过一番转换变成了 让你在一个二分图上删一条边使得二分图的最大独立集大小至少+1 二分图的最大独立集=点数-最小点覆盖(最大匹配) 点数是固定不变的 所以我们要减少最大匹配数 则删掉的哪一条边必须 ...

  6. mysql 导入sqlserver数据库

    #mysql 导入sqlserver数据库 EXEC master.dbo.sp_addlinkedserver @server = N'sjkxb00', @srvproduct=N'MySQL', ...

  7. python+Appium自动化:Appium元素检测

    appium模拟用户的真实操作,如果用户第一次进入app或许会弹出一些更新提示,或者是引导页面,但是下一次开启app时则没有引导页这些界面,这时,脚本中又肯定不考虑用两套代码来进行维护,此时如何应对这 ...

  8. 基于Kibana的可视化监控报警插件sentinl入门

    sentinl是什么 Kibi/Kibana Alert & Reporting App Watching your data, 24/7/365 sentinl是一个免费的kibana预警与 ...

  9. 移动端rem使用及理解

    先上代码 window.onload = function(){ getRem(720,100) }; window.onresize = function(){ getRem(720,100) }; ...

  10. JavaScript相关知识点

    ㈠JavaScript编写位置 ⑴可以将js代码编写到外部js文件中,然后通过script标签引入    写到外部文件中可以在不同的页面中同时使用,也可以利用到浏览器的缓存机制    推荐使用的方式 ...