首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

DataGridView将丢失来自DataTable.AcceptChanges的单元格格式

DataGridView是一个用于显示和编辑数据的控件,常用于Windows桌面应用程序的开发中。它可以与DataTable等数据源进行绑定,实现数据的展示和编辑功能。

在使用DataGridView时,有时会遇到来自DataTable.AcceptChanges方法的单元格格式丢失的问题。DataTable.AcceptChanges方法用于将对DataTable所做的更改应用到其基础数据源。但是,当使用DataGridView绑定了DataTable后,调用AcceptChanges方法后,可能会导致DataGridView中的单元格格式丢失,即原本设置的样式、颜色等信息被重置。

解决这个问题的方法是,在调用DataTable.AcceptChanges方法之前,先将DataGridView的样式保存下来,然后在AcceptChanges方法之后重新应用这些样式。具体步骤如下:

  1. 在调用DataTable.AcceptChanges方法之前,使用DataGridView的CellStyle属性保存当前的单元格样式,可以使用DataGridViewCellStyle的Clone方法创建一个副本。
  2. 调用DataTable.AcceptChanges方法应用更改。
  3. 在调用AcceptChanges方法之后,使用保存的样式重新设置DataGridView的单元格样式,可以使用DataGridView的Rows和Columns属性遍历所有单元格,并使用DataGridViewCell的Style属性重新设置样式。

这样就可以解决DataGridView在调用DataTable.AcceptChanges方法后单元格格式丢失的问题。

推荐的腾讯云相关产品:腾讯云云服务器(CVM)、腾讯云数据库MySQL版(TencentDB for MySQL)、腾讯云对象存储(COS)等。您可以通过访问腾讯云官网(https://cloud.tencent.com/)了解更多关于这些产品的详细信息和使用指南。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

c# WinForm开发 DataGridView控件各种操作总结(单元格操作,属性设置)

能够通过 CurrentCell 来设定 DataGridView 激活单元格 CurrentCell 设为 Nothing(null) 能够取消激活单元格。...(比方:值为Error时候,单元格被设定为红色) 以下演示样例:“Colmn1”列值改为大写。...当Value属性被设定表示用文本之后,把FormattingApplied属性做为True,告知DataGridView文本已经格式化完成。...假设不想让用户新追加行即不想显示该新行,能够 DataGridView 对象 AllowUserToAddRows 属性设置为 False。...「Ctrl + V」按下进行粘贴时,DataGridView 没有提供方法,仅仅能自己实现。 下面,是粘贴时简单事例代码,拷贝数据粘贴到以选择单元格開始区域内。

4.1K10

C#—— DataGridView控件各种操作总结(单元格操作,属性设置)

可以通过 CurrentCell 来设定 DataGridView 激活单元格 CurrentCell 设为 Nothing(null) 可以取消激活单元格。...(比如:值为Error时候,单元格被设定为红色) 下面的示例:“Colmn1”列值改为大写。...当Value属性被设定表示用文本之后,把FormattingApplied属性做为True,告知DataGridView文本已经格式化 完毕。...如果不想让用户新追加行即不想显示该新行,可以 DataGridView 对象 AllowUserToAddRows 属性设置为 False。...「Ctrl + V」按下进行粘贴时,DataGridView 没有提供方法,只能自己实现。 以下,是粘贴时简单事例代码,拷贝数据粘贴到以选择单元格开始区域内。

7.9K32
  • 【转】基于C#WinForm中DataGridView控件操作汇总

    可以通过 CurrentCell 来设定 DataGridView 激活单元格 CurrentCell 设为 Nothing(null) 可以取消激活单元格。...(比如:值为Error时候,单元格被设定为红色) 下面的示例:“Colmn1”列值改为大写。...当Value属性被设定表示用文本之后,把FormattingApplied属性做为True,告知DataGridView文本已经格式化完毕。...如果不想让用户新追加行即不想显示该新行,可以 DataGridView 对象 AllowUserToAddRows 属性设置为 False。...「Ctrl + V」按下进行粘贴时,DataGridView 没有提供方法,只能自己实现。 以下,是粘贴时简单事例代码,拷贝数据粘贴到以选择单元格开始区域内。

    5.3K50

    DataGridView使用小结

    contextMenuStrip1.Show(MousePosition.X, MousePosition.Y);                 }             }         } 效果图: 2).复制选中单元格内容到剪贴板... = false;//必须在代码中设置 4).显示图片 通常,我们图片路径保存在数据库中,但在dataGridView1中要显示图片,可以进行如下操作: ①.添加一个DataGridViewTextBoxColumn...类型列,Name=Path,DataPropertyName=Pic,Visible=False; ②.添加一个DataGridViewImageColumn类型列,Name=Pic; ③.dataGridView1...7).单元格内容格式化 private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs...已经列标题默认对齐方式设置为居中: dataGridView1.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter

    2.3K20

    C#学习笔记——DataGridView功能总结

    = false; //禁止手工调整行大小 dataGridView1.AllowUserToResizeColumns = false; //禁止手工调整列大小 3.单元格内容格式化 private...6.复制选中单元格内容到剪贴板 //复制选中内容 Clipboard.SetDataObject(dataGridView1.GetClipboardContent()); //复制选中行某列内容 if...;//单元格内容居中显示 //行为 dataGridView1.AutoGenerateColumns = false;//不自动创建列 dataGridView1.AllowUserToAddRows...dataGridView1.MultiSelect = false;//禁用多选 9.显示图片 通常,我们图片路径保存在数据库中,但在dataGridView1中要显示图片,可以进行如下操作:...已经列标题默认对齐方式设置为居中: dataGridView1.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter

    2.8K30

    【愚公系列】2023年11月 Winform控件专题 DataGridView控件详解

    = Color.Black;这段代码DataGridView控件奇数行背景颜色设置为浅灰色,字体设置为Tahoma字体,加粗,前景颜色设置为黑色。...:根据显示单元格内容自适应单元格宽度,除了列标题。...在按钮单击事件中,选中行复制到剪贴板中,并设置了复制到剪贴板内容类型为包含列标题内容。...数据编辑:DataGridView控件可以允许用户对数据进行编辑。可以通过设置列属性来控制哪些列可以编辑、编辑类型和格式等。数据排序:DataGridView控件可以允许用户对数据进行排序。...数据导出:DataGridView控件可以允许用户数据导出到Excel、CSV等格式。可以通过设置控件属性来控制导出格式和内容。

    1.8K11

    DataGridView控件用法一:数据绑定

    DataGridView控件,可以显示和编辑来自多种不同类型数据源表格数据。 数据绑定到DataGridView控件非常简单和直观,在大多数情况下,只需设置DataSource属性即可。...一、非绑定模式 所谓非绑定模式就是DataGridView控件显示数据不是来自于绑定数据源,而是可以通过代码手动数据填充到DataGridView控件中,这样就为DataGridView控件增加了很大灵活性...,不会在绑定时自动生成,通常需要进行手动绑定数据 二、绑定模式 就是已经存在数据绑定到DataGridView控件上。...数据绑定到DataGridView控件上非常简单和直观,在大多数情况下,只需设置DataSource属性即可。...DataGridView控件支持标准Windows窗体数据绑定模型,因此该控件绑定到下表所述实例: 1、任何实现IList接口类,包括一维数组。

    3.9K20

    DataGridView 密码列(显示为*号)设置

    曾经为在DataGridView中设置密码列(显示为*号)而发愁,如何把Windows 窗体 DataGridView 某一列数据显示为“*”。 哈哈,今天终于搞定了。...需要在DataGridView2个事件中写代码真麻烦!...下面的代码把第4列设置为密码列(显示为*号):         ///         /// 单元格显示格式事件         ///        ...CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)         {             // 把第4列显示*号,*号个数和实际数据长度相同...e.Value.ToString().Length);                 }             }         }         ///         /// 编辑单元格控件事件

    2.3K30

    Excel单元格url批量转化为图片格式三种方法

    iexcel另存为能启用宏xlsm格式 二、url转化为图片三种方法 1、同时保留图片和连接(编写vb程序并调用对应宏) 首先先把所有链接转化为超链接形式(蓝色字体带下划线) ?...) '插入链接地址中图片 If .Height / .Width > Rng.Height / Rng.Width Then '判断图片纵横比与单元格纵横比比值以确定针对单元格缩放比例...Rng.Height / Rng.Width Then '判断图片纵横比与单元格纵横比比值以确定针对单元格缩放比例 .Top = Rng.Top...End If End With 右键单元格就可以显示图片 补充 解决评论区非超链接网址显示成图片问题 Sub loadimage() Dim ranTotal As Range, rng As...imageRng.Height / imageRng.Width Then '判断图片纵横比与单元格纵横比比值以确定针对单元格缩放比例 .Top = imageRng.Top

    18.8K41

    WinForm 控件 DataGridView 常用操作

    1、取消列自动生成 在窗体load事件里面设置表格dataGridViewAutoGenerateColumns为 false dataGridView.AutoGenerateColumns = false...2、取消所有选中单元格 调用方法ClearSelection dataGridView.ClearSelection() 3、单元格自动换行显示 设置DefaultCellStyle 里面的WarapMode...- 40, e.RowBounds.Top + 4, 16, 16); } 7、转换单元格显示 在表格CellFormatting事件里面进行转换操作,比如一个状态字段是int类型,显示需要转换成对应字符串显示...]; //取得列值,如果是绑定数据,可以row.DataBoundItem转换成绑定对象再取值判断 var cell=row.cell[0].value.ToString...= false; dataGridView.Rows[e.RowIndex].Selected = true; } } 9、修改单元格值,单行刷新重绘 //dgvBook.SelectedRows

    1.8K30

    DataGridViewCheckBoxColumn勾选框勾上了,Value却是false

    列,当修改checkbox状态时实时获得其状态值    不知道大家有没有这样经验,当点击或者取消datagridviewcheckbox列时,比较难获得其状态是选中还是未选中,进而不好进行其它操作,...下面就列出它解决办法: 主要用到了datagridviewCurrentCellDirtyStateChanged和CellValueChanged两个事件 CurrentCellDirtyStateChanged...事件是提交对checkbox状态修改 CellValueChanged事件是当状态提交后,也就是单元格值改变后做一些其它操作,这里是checkbox列true或false状态作为tooptiptext...(object sender, EventArgs e) { if (this.dataGridView1.IsCurrentCellDirty) //有未提交更//改 {                ...列单元格                 DataGridViewCheckBoxCell dgvCheckBoxCell = this.dataGridView1.Rows[e.RowIndex].Cells

    2.2K10

    DataGridView控件中加入ComboBox下拉列表框实现

    本文介绍一种只在当前编辑单元格中显示下拉列表框方法,供大家参考。   ...首先新建一个Windows应用程序,主窗体重命名为MainForm,在MainForm中加入一个DataGridView控件,命名为dgv_User。如下图所示: ?   ...DataGridView控件中     this.dgv_User.Controls.Add(cmb_Temp); }   当用户选择单元格移动到性别这一列时,我们要显示下拉列表框,添加如下事件 private...dgv_User_ColumnWidthChanged(object sender, DataGridViewColumnEventArgs e) {     this.cmb_Temp.Visible = false; }   绑定数据表后性别列中每一单元格...DataGridViewColumnEventArgs e)         {             this.cmb_Temp.Visible = false;         }         // 绑定数据表后性别列中每一单元格

    3.7K20

    Excel催化剂开源第23波-VSTO开发辅助录入功能关键技术

    一般来说控件都是放到窗体或任务窗格中,但Excel同样支持控件放到工作表单元格上,如前面提到picturebox容器,放到单元格区域上,然后在容器上发图片,实现插入图片功能,同样地也可以存放单选、复选这些控件...自定义控件,可直接用到工作表单元格中 具体实现原理 通过用户配置操作,需要进行快速录入区域记录下来,用SelectionChange事件来响应,若用户选择到这些单元格时,就激发事件方法,显示自定义控件...输入过程中动态控制下方DataGridView查找结果,用户可以按方向箭下上在结果中选择对应条目,再按Enter或Tab键确定内容录入。...FormFastInput.UscFastInput.UserControlTextBox.KeyDown += FormFastInput.UscFastInput.textBox1_KeyDown; } } 响应录入单元格区域代码...,使我们在上层构建业务代码时变得如此轻松,此篇给大家展示了在工作表单元格区域上创建自定义控件能力,发挥得当,较直接弹出窗体效果要友好得多。

    1.3K10

    MultiRow中文版技术白皮书

    为了实现自由布局数据展示方式,MultiRow在架构设计时打破了常用表格控件行列概念,可以任意操作单元格位置和大小,可以让上下两个单元格自由叠加,也可以设计个性化列头和列脚,提供自动对齐工具以保证版面布局美观...同时,设计好模板可以被保存为XML格式文件,方便了开发者之间交流和共享。...同时,MultiRow缺省内置了大约二十多种单元格类型,这些单元格大部分都是嵌入了Microsoft .NET标准控件,可以满足大多数应用程序基本需求。...重视易用性 为了降低用户学习成本,MultiRow采用了和DataGridView相似的接口设计,对于曾经使用过Microsoft DataGridView或者熟悉DataGridView接口设计开发人员...另外,最近我们正在举办“葡萄城控件有奖调查”,二等奖免费获得一套MultiRow中文版,并且含服务。

    1.3K50
    领券