在 DataGridView 中设置的 DataGridViewComboBox,默认是不可编辑的,即使将其列属性 DisplayStyle 设置成 ComboBox 或其他,也无法编辑: 故作如下处理: 一  DataGridViewComboBoxCell 重写 DataGridViewComboBox 的单元控件 DataGridViewComboBoxCell /// <summary> /// 自定义可编辑下拉框单元 /// </summary> public class…
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) { if (e.RowIndex >= 0) { DataGridViewColumn column = dataGridView1.Columns[e.ColumnIndex]; if (column is DataGridViewButtonColumn) { //要做的事 dataGridView1.Rows[e.R…
Q1.  如何使单元格不可编辑? A:设置 ReadOnly 属性,可以设置的对象包括 DataGridViewRow(行).DataGridViewColumn(列).DataGridViewCell(单元格)以及自身 DataGridView 对象均可设置 ReadOnly 属性来限制单元格的编辑状态. 扩展:需要注意的是,当 DataGridView 通过 DataSource 绑定数据自动生成行列时,如果直接在 Form 的构造函数初始化界面 InitializeComponent 后直…
近期接手一个winform 项目,虽然之前有.net 的经验,但是对一些控件的用法还不是很熟悉. 这段时间将会记录一些在工作中遇到的坎坷以及对应的解决办法,写出来与大家分享并希望大神提出更好解决方法来促进进步. 我也会尽可能把我查找到资料的出处引出来,以此来感恩对我提供帮助的人们. 正题如下 一.关于Winform下DataGridView中实现checkbox全选反选.同步列表项的处理 1.checkbox的添加:在设计页面选择编辑列在新添加的列中注意如下几个属性: SortMode = No…
注意:DataGridView控件是从.NET Framework 2.0版本开始追加的. ReadOnly属性的使用 DataGridView内所有的单元格不能编辑 当DataGridView.ReadOnly属性设定为True时, DataGridView内所有的单元格不能编辑. 但是使用这种方法可以对行进行删除.而且最下面的一行被表示,但不能输入. // DataGridView1的单元格只读 DataGridView1.ReadOnly = true; 只有被指定的列.行.单元格不能编辑…
在Winform开发中,我们往往除了常规的单表信息录入外,有时候设计到多个主从表的数据显示.编辑等界面,单表的信息一般就是控件和对象实体一一对应,然后调用API保存即可,主从表就需要另外特殊处理,本随笔介绍如何快速实现主从表编辑界面的处理,结合GridControl控件的GridView控件对象,实现数据在列表中的实时编辑,非常方便. 1.主从表的界面设计及展示 主从表一般涉及两个以上的表,一个是主表,其他的是从表的,在实际情况下,一般包含两个表较多,我们这里以两个表的主从表关系进行分析处理.…
工作中,我们发现了微软.net WinForm的一个Bug,会导致窗体设计器自动生成的代码失效,这个Bug从.net4.5到最新的.net4.7.2都存在,一直没有解决.最初是我在教学工作中发现的,后来工作的时候该Bug也常现. 重现步骤: 使用VisualStudio2013/2015/2017/2019创建一个新的Windows窗体程序(使用C#或者VB.net都可以) 新建的默认空白的窗体程序,点击运行,可以正常运行: 这时,我们往窗体拖一个ListView控件,手动添加两列,名称分别为I…
一.关联窗体数据更新 关联窗体数据修改时,如果一个为总体数据显示窗体A,另一个为详细修改窗体B,从A进入B,在B中对数据进行修改,然后返回A,这时A窗体的数据需要更新. 我采用最简单的方法,首先保证每个窗体只有一个(网上代码很多),每次激活窗体时就重新载入数据,从A进入B的代码如下: #region 激活或创建用户管理层面 bool isExit = false; foreach (Form childFrm in this.MdiParent.MdiChildren) { //用子窗体的Nam…
转:http://www.cnblogs.com/jaxu/archive/2011/08/04/2127365.html 我们见过Excel中的数据过滤功能,可以通过点击表头上的下拉列表来实现数据的过滤,这个功能很实用,省去了我们需要在程序中单独设计数据的查询过滤模块,功能直接依赖于数据绑定控件DataGridView.先来看看Excel中的数据过滤功能. 要想在DataGridView中实现类似于Excel的这种功能其实也并非难事.来看看msdn上的一篇文章,上面有详细的介绍,不过目前只有全…
在DataGridView手动添加了CheckBox列;在窗体Show的时候,遇到一个错误:错误如下: DataGridView中发生一下异常:System.FormatException:单元格的Formatted值的类型错误.要替换此默认对话框,请处理DataError事件. 点击以后有一对话框错误如下: DataGridView中发生一下异常: SystemArgumentException:为DataGridViewCheckBoxCell提供的值的类型错误. 在System.Windo…
在DataGridView中自动的添加Column. private void button_autoAddColumn_Click(object sender, EventArgs e) { try { /*链接数据库并获取数据*/ string connString = "Server=.;Database=testDatabase;Integrated Security=SSPI"; SqlConnection conn = new SqlConnection(connStrin…
DataGridView 中添加CheckBox和常用处理方式 文章1 转载:http://blog.csdn.net/pinkey1987/article/details/5267934 DataGridView中添加CheckBox控件主要采用两种方法 1.  通过在DataGridView的Columns中添加System.Windows.Forms.DataGridViewCheckBoxColumn类型的列.并可以设置该列相关的属性信息. 2. 在程序代码中直接添加相应的代码 Syst…
1.不让DataGridView控件自动生成列 设置AutoGenerateColumns 为false. dgTicket.AutoGenerateColumns = false; //将自动生成列禁用 2.DataGridView中RowsAdded事件的注意事项 在ASP.NET中的GridView控件在显示绑定数据时有一个RowDataUpdated事件,在其事件响应函数里可以逐行扫描每行所绑定的数据,根据需要可以修改GridView显示的格式或Value等,比较方便. 而在WinFor…
C# winform DataGridView 属性说明① 取得或者修改当前单元格的内容 ② 设定单元格只读 ③ 不显示最下面的新行 ④ 判断新增行 ⑤ 行的用户删除操作的自定义 ⑥ 行.列的隐藏和删除 ⑦ 禁止列或者行的Resize ⑧ 列宽和行高以及列头的高度和行头的宽度的自动调整 ⑨ 冻结列或行 ⑩ 列顺序的调整 ⑪ 行头列头的单元格⑫ 剪切板的操作 ⑬ 单元格的ToolTip的设置 ⑭ 右键菜单(ContextMenuStrip)的设置 ⑮ 单元格的边框. 网格线样式的设定 ⑯ 单元格表…
问题:C#中Winform程序中如何实现多维表头. 在网上搜了很多方法,大多数方法对于我这种新手,看的都不是很懂.最后在新浪博客看到了一篇比较易懂的文章:[DataGridView二维表头与合并单元格] 大体的思路如下: 1.新建一个项目: 2.右键项目名称添加一个组件名为:HeaderUnitView.cs 3.点击[单击此处切换到代码视图]代码: using System; using System.Collections.Generic; using System.Linq; using…
在WinForm中DataGridView可谓是应用比较多的数据显示控件了,DataGridView中可以应用各种控件,关于这样的文章网上 已有很多.都是实例化一个控件然后通过DataGridView.Controls.Add()方法绑定控件.然后通过特定的事伯执行数据绑定与操作. 这几天在做项目的时候也也用到的DataGridView控件,而且需要要DataGridView使用ComboBox来动态的显示数据.查了不少 的资料来完成DataGridView中的ComboBox的数据绑定,多数都…
虚模式填充常用来处理大量数据,某个字段的显示问题. DataGridView是.net 2.0新增的表格数据编辑和显示控件,简单的数据显示和编辑,只需直接和数据源绑定就可以了. 对于 一些特殊情况,我们需要自己填充DataGridView,这时候只需要按照行列顺序,首先获得行,然后通过行的Cells属性,得到单元格,设置其 Value属性即可.但这种模式有个问题,即对于几十行或者几百行的数据,显示效率不是问题,当数据量逐渐增大时,效率就成了一个非常重要的问题. 那么,如何解决这样的问题呢,写过或…
上周在开发Winform 项目中,我曾遇到一个看似简单,但一直都没有解决的问题,那就是:设置winform DataGridView控件的行DefaultCellStyle,但却没有任何变化,我也曾求助于博问:http://q.cnblogs.com/q/72294/,但大家给的答案没有一个能解决这个问题,可能是问题重现不太容易,我自己也曾多次在其它项目中尝试重现这个问题,但一直都是正确的,没有出现我当前项目的问题,简直要崩溃啊! 先来看看我原有的代码: private void Form1_L…
个人理解,开发应用程序的目的,不论是B/S或是C/S结构类型,无非就是实现可供用户进行查.增.改.删,其中查询用到最多,开发设计的场景也最为复杂,包括但不限于:表格记录查询.报表查询.导出文件查询等等,其次就是增加.更改.删除,我这里统称为编辑,而编辑在开发设计中的场景就显得较为通用,大多都采用编辑组件(文本框.下拉框.选择框.数字框等)来供用户进行编辑操作,由于查询的开发设计场景需与实际的数据及客户要求来进行的,所以在此不作讨论,本文主要讲述的是如何利用FlowLayoutPanel及我(梦在…
以下是NPOI导入导出EXCEL通用类,是在别人的代码上进行优化的,兼容xls与xlsx文件格式,供参考,可直接使用在WinForm项目中,由于XSSFWorkbook类型的Write方法限制,Write完成后就自动关闭流数据,所以无法很好的支持的Web模式,网上目前也未找到好的解决方案,大家如果有知道的还请告之,谢谢! 注意:若直接使用在WinForm项目中,必需先下载并在项目中引用NPOI2.0或以上版本的组件才可以正常使用,下载地址:http://npoi.codeplex.com/rel…
我们都知道WinForm DataGridView控件支持数据绑定,使用方法很简单,只需将DataSource属性指定到相应的数据源即可,但需注意数据源必须支持IListSource类型,这里说的是支持,而不是实现,是因为他既可以是实现了IListSource的类型,也可以是实现了IList的类型,例如:List类型,DataTable类型等,这里就不一一列举了,今天我主要实现的功能如标题所描述的:实现WinForm DataGridView控件支持叠加数据绑定,或者说是附加数据功能,什么意思呢…
0(最基本的技巧). 获取某列中的某行(某单元格)中的内容  this.currentposition = this.dataGridView1.BindingContext  [this.dataGridView1.DataSource,   this.dataGridView1.DataMember].Position;                bookContent = this.database.dataSet.Tables[0].Rows  [this.currentpositi…
1. 获取DataGridView中的的选中行:http://blog.csdn.net/yiqijinbu/article/details/7734593 2.winform datagridview如何获取选中行的索引:http://www.cnblogs.com/82767136/archive/2009/08/11/1255644.html…
DataGridView中添加CheckBox列用于选择行 1,编辑DataGridView,添加一列 CheckBox ,Name 赋值为 "select",如下图: 2,取消 datagridview 的可编辑属性,添加 CellClick 事件,用代码来控制checkbox的选中状态,具体代码如下: private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e) { || e.Col…
1.1运行效果: 1.2开发实现: 1.2.1          首先在数据库中创建需要开发的数据表,在代码生成器中进行配置连接数据库. 代码生成器的Config.xml文件配置如下节点: 1.2.2          之后打开代码生成器 SNF.CodeGenerator.exe.再之后选中需要开发的数据库和数据表. 1.2.3          选中之后在“表结构配置”区域可以进行配置,字段要显示的中文名称,显示时所使用的控件,如:文本框.文本域.数量控件.金额控件.下拉框(直接选择数据字典…
在实际的项目开发过程中,有好的控件或者功能模块,我都是想办法尽可能集成到我的WInform开发框架中,这样后面开发项目起来,就可以节省很多研究时间,并能重复使用,非常高效方便.在我很早之前的一篇博客<在GridControl控件中使用SearchLookUpEdit构建数据快速输入>就曾经介绍,如何在列表控件中实现数据的快速录入,本文介绍另外一种方式,通过文本输入框的输入选择,可以实现数据的快速录入,原理和之前一篇差不多,不过这次利用DevExpress控件的GridLookupEdit控件封…
引言 在做winform项目中,数据控件DataGridView的使用多多少少是会用到的,如果不设置它的属性,默认情况下是不会自适应宽度的,你想查看某项的数据,就不得不将标题栏拖来拖去,挺烦的. 方法 建一个用于测试的Person类 public class Person { [Description("姓名")] public string Name { get; set; } [Description("性别")] public string Gender {…
http://www.cnblogs.com/zuowj/p/4504130.html 不论是B/S或是C/S结构类型,无非就是实现可供用户进行查.增.改.删,其中查询用到最多,开发设计的场景 也最为复杂,包括但不限于:表格记录查询.报表查询.导出文件查询等等,其次就是增加.更改.删除,我这里统称为编辑,而编辑在开发设计中的场景就显得较 为通用,大多都采用编辑组件(文本框.下拉框.选择框.数字框等)来供用户进行编辑操作,由于查询的开发设计场景需与实际的数据及客户要求来进行的,所以 在此不作讨论,…
C# DataGridView控件动态添加新行 DataGridView控件在实际应用中非常实用,特别需要表格显示数据时.可以静态绑定数据源,这样就自动为DataGridView控件添加相应的行.假如需要动态为DataGridView控件添加新行,方法有很多种,下面简单介绍如何为DataGridView控件动态添加新行的两种方法: 方法一: int index=this.dataGridView1.Rows.Add(); this.dataGridView1.Rows[index].Cells[…
datagridview显示行号的2种方法: 方法一: 网上最常见的做法是用DataGridView的RowPostPaint事件在RowHeaderCell中绘制行号: privatevoiddataGridView1_RowPostPaint(objectsender, DataGridViewRowPostPaintEventArgs e) { try { e.Graphics.DrawString((e.RowIndex + ).ToString(), e.InheritedRowSty…