来源:http://www.cnblogs.com/wolf-sun/p/3480104.html 在做winform项目中,数据控件DataGridView的使用多多少少是会用到的,如果不设置它的属性...185 /// 186 /// 使DataGridView的列自适应宽度 187 /// 188.../// 189 private void AutoSizeColumn(DataGridView dgViewFiles...) 190 { 191 int width = 0; 192 //使列自使用宽度 193 //对于DataGridView...的列自动调整模式设置为显示的列即可, 203 //如果是小于原来设定的宽度,将模式改为填充。
渐变色结束颜色 /// 边框颜色 public static void SetDgvViewColor(DataGridView...param> /// 是否在行标题显示序号 public static void SetDgvViewStyle(DataGridView...{ Rectangle rectangle = new Rectangle(e.RowBounds.Location.X, e.RowBounds.Location.Y, ((DataGridView...RowHeadersWidth, e.RowBounds.Height); TextRenderer.DrawText(e.Graphics, (e.RowIndex + 1).ToString(), ((DataGridView...)sender).RowHeadersDefaultCellStyle.Font, rectangle, ((DataGridView)sender).RowHeadersDefaultCellStyle.ForeColor
曾经为在DataGridView中设置密码列(显示为*号)而发愁,如何把Windows 窗体 DataGridView 的某一列的数据显示为“*”。 哈哈,今天终于搞定了。...需要在DataGridView的2个事件中写代码真麻烦!...下面的代码把第4列设置为密码列(显示为*号): /// /// 单元格显示格式事件 /// ...e.Value.ToString().Length); } } } /// /// 编辑单元格控件事件...,把第4列显示为*号 TextBox t = e.Control as TextBox; if (t !
本文转载:http://blog.csdn.net/szstephenzhou/article/details/7834725 --关于DataGridView_DataError事件的问题 ...事件的问题 *说明:本文是个人学习的一些笔记和个人愚见 * 有很多地方你可能觉得有异议,欢迎一起讨论 *作者:Stephenzhou(阿蒙) *日期:...**********************************************************************************/ “DataGridView 默认错误...”对话框 --------------------------- DataGridView 中发生以下异常: System.ArgumentException: 不能将列“CQUESTION_ID...(Int32 boundColumnIndex, Int32 columnIndex, Int32 rowIndex, Object value) 要替换此默认对话框,请处理 DataError 事件
对于DataGridView控件,与单元格内容相关的有以下这几个事件: // 当单元格内容改变并且提交之后发生(提交一般是单元格在编辑完之后失去焦点...private void dataGridView_CellEndEdit(object sender, DataGridViewCellEventArgs e) { } 但是以上这几个事件都不能实现每次向单元格输入新的内容时发生...举个例子,我单击一个单元格,则单元格进入编辑状态,CellBeginEdit事件发生,然后我输入1,2……乃至更多的东西,上述的事件也不会发生。另外Key*系列的事件也试过,也没反应。...如果要像TextBox那样,每输入一个字符就发生一次的事件怎么办呢?可以用以下方法。原来dataGridView控件的单元格只是个容器,他可以容纳其他的控件,最一般的就是一个文本框。...EditingControlShowing事件比上述事件还要早发生,他是dataGridView控件为了使用户可以编辑,而加载一个TextBox(如果单元格时复选框,是其他的控件,那么就加载对应的控件)
我们在使用Office Excel的时候,有很多时候需要冻结行或者列。这时,Excel会在冻结的行列和非冻结的区域之间绘制上一条明显的黑线。...如下图: (图1) WinForm下的DataGridView控件也能实现类似的冻结行或者列的功能(参见:http://msdn.microsoft.com/zh-cn/library/28e9w2e1...(VS.85).aspx) ,但是呢,DataGridView控件默认不会在冻结列或者行的分界处绘制一个明显的分界线,这样的话,最终用户很难注意到当前有列或者行是冻结的。...如下图所示:你能很快的找到那一列是Freeze的么? (图2) 正是因为如此,我们如果能做出类似Excel的效果,就可以大大提高数据的可读性。...最终做出的效果如下图: (图3) 以下是DataGridView控件扩展源代码: public class DataGridViewEx : DataGridView {
首先,我们创建一个Windows应用程序,在窗体中拖拽一个DataGridView控件,命名为dataGridView。要确保该控件的“启用编辑”选项勾选。下面我们动态创建列,以及添加一行数据。...方法一: 在DataGridView控件的CellClick事件中添加如下代码: CellClick事件 private void dataGridView_CellClick(object sender...= null) //如果该列是ComboBox列 { dataGridView.BeginEdit(false); //结束该列的编辑状态...= null) //如果该列是TextBox列 { dataGridView.BeginEdit(true); //开始编辑状态...} } } 方法二: 在DataGridView的CellEnter事件中添加如下代码: CellEnter事件 private
事件。...当单元格的 ToolTipText 变化的时候也会引发该事件。但是,当DataGridView的DataSource被指定且VirualMode=True的时候,该事件不会被引发。...用户在删除行的时候,将会引发 DataGridView.UserDeletingRow 事件。 在这个事件里,可以判断条件并取消删除操作。...列顺序发生改变时会引发 ColumnDisplayIndexChanged 事件: // DataGridView1的ColumnDisplayIndexChanged事件处理方法 private void...比起使用循环遍历,使用该事件来设定右键菜单的效率更高。但是,在DataGridView使用了DataSource绑定而且是 VirtualMode的时候,该事件将不被引发。
DataGridView1的第一列列头内容 DataGridView1.Columns[0].HeaderCell.Value = “第一列”; // 改变DataGridView1的第一行行头内容...当单元格的 ToolTipText 变化的时候也会引发该事件。可是,当DataGridView的DataSource被指定且VirualMode=True的时候,该事件不会被引发。...用户在删除行的时候,将会引发 DataGridView.UserDeletingRow 事件。 在这个事件里,能够推断条件并取消删除操作。...列顺序发生改变时会引发 ColumnDisplayIndexChanged 事件: // DataGridView1的ColumnDisplayIndexChanged事件处理方法 private...比起使用循环遍历,使用该事件来设定右键菜单的效率更高。可是,在DataGridView使用了DataSource绑定并且是VirtualMode的时候,该事件将不被引发。
当单元格的 ToolTipText 变化的时候也会引发该事件。但是,当DataGridView的DataSource被指定且VirualMode=True的时候,该事件不会被引发。...用户在删除行的时候,将会引发 DataGridView.UserDeletingRow 事件。 在这个事件里,可以判断条件并取消删除操作。...列顺序发生改变时会引发 ColumnDisplayIndexChanged 事件: // DataGridView1的ColumnDisplayIndexChanged事件处理方法 private void...,可以在DataGridView.DefaultValuesNeeded事件里处理。...比起 使用循环遍历,使用该事件来设定右键菜单的效率更高。但是,在DataGridView使用了DataSource绑定而且是VirtualMode的时 候,该事件将不被引发。
用户在删除行的时候,将会引发 DataGridView.UserDeletingRow 事件。 在这个事件里,可以判断条件并取消删除操作。...列顺序发生改变时会引发 ColumnDisplayIndexChanged 事件: // DataGridView1的ColumnDisplayIndexChanged事件处理方法 private...当单元格的 ToolTipText 变化的时候也会引发该事件。但是,当DataGridView的DataSource被指定且VirualMode=True的时候,该事件不会被引发。...比起使用循环遍历,使用该事件来设定右键菜单的效率更高。但是,在DataGridView使用了DataSource绑定而且是VirtualMode的时候,该事件将不被引发。...事件可以设定用户输入的值。
控件中 this.dataGridView1.DataSource = dt; 选中DataGridView中的行,将所有列的数据一个个放入到文本控件中(cellClick事件)。...//在cellClick事件外定义typeID string typeID; //判断选中的行数是否>0 if (this.dataGridView1.SelectedRows.Count>0)...{ //”=”号左边给全局变量typeID赋值, ”=”号右边获得选中第一行第一列的值转为string类型(列标号以数据库中的顺序为准) typeID = this.dataGridView1....Text = this.dataGridView1.SelectedRows[0].Cells[1].Value.ToString(); //”=”号定义变量接收, ”=”号右边获得选中第一行第三列的值转为...; } 删除(Click事件) //定义sql语句(typeID是全局变量,从DataGridView控件的cellClick事件中获取选中的隐藏的类型ID) string sql = string.Format
给dataGridView1的CellMouseDown事件添加处理程序: private void dataGridView1_CellMouseDown(object sender, DataGridViewCellMouseEventArgs...=Pic,Visible=False; ②.添加一个DataGridViewImageColumn类型的列,Name=Pic; ③.dataGridView1控件DataBindingComplete事件处理程序如下...手动添加列,再在编辑列界面中逐个设置宽度。...//样式 dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.None;//列宽不自动调整,手工添加列 dataGridView1...;//单元格内容居中显示 //行为 dataGridView1.AutoGenerateColumns = false;//不自动创建列 dataGridView1.AllowUserToAddRows
当修改checkbox状态时实时获得其状态值 不知道大家有没有这样的经验,当点击或者取消datagridview的checkbox列时,比较难获得其状态是选中还是未选中,进而不好进行其它操作,下面就列出它的解决办法...: 主要用到了datagridview的CurrentCellDirtyStateChanged和CellValueChanged两个事件 CurrentCellDirtyStateChanged事件是提交对...checkbox状态的修改 CellValueChanged事件是当状态提交后,也就是单元格值改变后做一些其它的操作,这里是将checkbox列的true或false状态作为tooptiptext属性设置到同一行的...button列 CurrentCellDirtyStateChanged事件代码 : private void dataGridView1_CurrentCellDirtyStateChanged(object....CommitEdit(DataGridViewDataErrorContexts.Commit); } } CellValueChanged事件代码 : private void dataGridView1
1、取消列自动生成 在窗体load事件里面设置表格dataGridView的AutoGenerateColumns为 false dataGridView.AutoGenerateColumns = false...表格RowPostPaint事件 private void dataGridView_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs...e) { //获取行对象 var row = dataGridView.Rows[e.RowIndex]; //对行的第一列value赋值 row.Cells[0]....Value = row.Index + 1; } 6、行头绘制图片 表格RowPostPaint事件绘制图片或者数字 private void dataGridView_RowPostPaint(object...//转换第一列 if (e.ColumnIndex == 0) { //取得行 var row = dataGridView.Rows[e.RowIndex
本文适用Winform开发,且DataGridView的数据源为DataTable/DataView的情况。...DataGridView(下称dgv),A、B两列都要在dgv中显示,其中A列可编辑(ReadOnly=false)。...一、解决实时更新计算列的问题 可以通过dgv的CurrentCellDirtyStateChanged事件达到目的: private void dgv_CurrentCellDirtyStateChanged...//此判断有必要,因为下面的dgv.CommitEdit也会触发该事件,但此时IsCurrentCellDirty已为false, //如果不做判断,将会重复进入,造成无谓消耗 if (...EndEdit()也能达到同样目的 //(dgv.CurrentRow.DataBoundItem as DataRowView).Row.EndEdit(); } } 通过这个事件做了上面要做的两个事
1.只显示自定义列 dataGridView1.AutoGenerateColumns = false;//必须在代码中设置 2.禁止调整行、列大小 dataGridView1.RowHeadersWidthSizeMode...给dataGridView1的CellMouseDown事件添加处理程序: private void DataGridView1_CellMouseDown(object sender, DataGridViewCellMouseEventArgs...8.打造一个漂亮的DataGridView //样式 dataGridView1.RowHeadersVisible = false; //不显示行标题列 //dataGridView1.AutoSizeColumnsMode...类型的列,Name=Pic; ③.dataGridView1控件DataBindingComplete事件处理程序如下: private void DataGridView1_DataBindingComplete...;//列标题居中显示 但实际的效果总是偏左了一点,原因是列可以进行排序,排序标志符号在列标题上占了空间。
格式: .Rows[i].Cells[j].Value 表示数据表中第i条记录(行)第j个字段(列)的值。...5.DataGridView列的编辑 单击DataGridView控件的设计器中“编辑列”选项,或者在DataGridView控件的“属性”面板中单击Columns属性右侧的省略按钮,即可进入“编辑列...DividerWidth:列分隔线宽度。 MinimumWidth:列最小宽度,如设置最小列宽为5。 Width:当前字段宽度。 2)设计。 ① Name:字段名。...///单元格单击事件,获取当前选择的单元格的值--以下有3种方法 private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs....Text = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString();//利用下标返回值 } ///单元格内容点击事件
DataGridView控件使用大全:http://www.haogongju.net/art/847949 http://kb.cnblogs.com/a/2018504/ DataGridView...控件用法合集:http://blog.sina.com.cn/s/blog_59181ec70100cel4.html~type=v5_one&label=rela_prevarticle DataGridView...2.DataGridView二维表头及单元格合并 DataGridView单元格合并和二维表头.rar myMultiColHeaderDgv.rar ? ? ?...3.DataGridView单元格显示GIF图片 gifanimationindatagrid.rar ?...4.自定义显示DataGridView列(行头显示行号与图标,同一单元格显示图片也显示文字)TestDataGridViewRowStyle2.rar ? 5.扩展DataGridView功能 ?
private void dataGridView1_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e) {...rectangle = new Rectangle(e.RowBounds.Location.X, e.RowBounds.Location.Y, dataGridView1...e.RowBounds.Height); TextRenderer.DrawText(e.Graphics, (e.RowIndex + 1).ToString(), dataGridView1....RowHeadersDefaultCellStyle.Font, rectangle, dataGridView1.RowHeadersDefaultCellStyle.ForeColor..., TextFormatFlags.VerticalCenter | TextFormatFlags.Right); } 另一种也是在这个事件下面下面 用了个
领取专属 10元无门槛券
手把手带您无忧上云