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

c#Winforms:DataGridView使事件没有获得上次更新的单元格的值

以下是关于c#Winforms:DataGridView使事件没有获得上次更新的单元格的值的完善且全面的答案:

c#Winforms:DataGridView使事件没有获得上次更新的单元格的值

问题描述:在使用c# Winforms中的DataGridView控件时,事件没有获得上次更新的单元格的值。

解决方法

在DataGridView控件中,可以使用CellValueChanged事件来获取上次更新的单元格的值。以下是一个示例代码:

代码语言:csharp
复制
private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
    // 获取上次更新的单元格的值
    var oldValue = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].EditedFormattedValue;

    // 获取当前单元格的值
    var newValue = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value;

    // 在这里处理您的业务逻辑
}

推荐的腾讯云相关产品

  • 腾讯云数据库:提供MySQL、PostgreSQL、MongoDB等多种数据库类型,支持自动备份、监控告警等功能。
  • 腾讯云对象存储:提供可靠、安全、低成本的云存储服务,支持多种存储类型和API接口。
  • 腾讯云云服务器:提供弹性、可扩展的云计算服务,支持多种操作系统和实例类型。

产品介绍链接地址

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

相关·内容

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

列,当修改checkbox状态时实时获得其状态    不知道大家有没有这样经验,当点击或者取消datagridviewcheckbox列时,比较难获得其状态是选中还是未选中,进而不好进行其它操作,...下面就列出它解决办法: 主要用到了datagridviewCurrentCellDirtyStateChanged和CellValueChanged两个事件 CurrentCellDirtyStateChanged...事件是提交对checkbox状态修改 CellValueChanged事件是当状态提交后,也就是单元格改变后做一些其它操作,这里是将checkbox列true或false状态作为tooptiptext...属性设置到同一行button列 CurrentCellDirtyStateChanged事件代码 : private void dataGridView1_CurrentCellDirtyStateChanged...[e.ColumnIndex] as DataGridViewCheckBoxCell;//获得checkbox列单元格                 dgvButtonCell.ToolTipText

2.2K10
  • 可视化数据库设计软件有哪些_数据库可视化编程

    2)登录到服务器上,并显示服务器数据库和系统服务,包括事件日志、消息队列、性能计数器、系统服务和SQL数据库。 3)查看关于可用Web服务信息以及使信息可用方法和架构。...///单元格单击事件,获取当前选择单元格--以下有3种方法 private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs...textBox5.Text = dataGridView1.SelectedCells[0].Value.ToString();//被选择单元格数组第一个 textBox5....Text = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString();//利用下标返回 } ///单元格内容点击事件...= dataGridView1.SelectedCells[0].Value.ToString();//被选择单元格数组第一个 textBox5.Text = dataGridView1

    6.7K40

    【C#】让DataGridView输入中实时更新数据源中计算列

    本文适用Winform开发,且DataGridView数据源为DataTable/DataView情况。...),但dt和dv没有,后者只到行这一级,虽然可以通过DataRow[x]或DataRowView[x]访问单元格,但在类层级上并不存在DataCell这样表示单元格实体类,也就是dt和dv编辑...可以看到,计算列得到更新关键有两处: dgv单元格数据要提交到数据源相应单元格 源行结束编辑状态 按常规提交流程,必须使焦点离开单元格所在行(只离开单元格都不行哦)才能达到目的,而我们需求是,编辑过程中就要实时更新...一、解决实时更新计算列问题 可以通过dgvCurrentCellDirtyStateChanged事件达到目的: private void dgv_CurrentCellDirtyStateChanged...} } 通过这个事件做了上面要做两个事,即①将dgv单元格更新到数据源;②结束源行编辑状态。

    5.2K20

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

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

    1.3K10

    WinForm 控件 DataGridView 常用操作

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

    1.8K30

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

    本文介绍一种只在当前编辑单元格中显示下拉列表框方法,供大家参考。   ...控件中     this.dgv_User.Controls.Add(cmb_Temp); }   当用户选择单元格移动到性别这一列时,我们要显示下拉列表框,添加如下事件 private void dgv_User_CurrentCellChanged...单元格内容 private void cmb_Temp_SelectedIndexChanged(object sender, EventArgs e) {     if (((ComboBox)sender...dgv_User_ColumnWidthChanged(object sender, DataGridViewColumnEventArgs e) {     this.cmb_Temp.Visible = false; }   绑定数据表后将性别列中每一单元格...DataGridViewColumnEventArgs e)         {             this.cmb_Temp.Visible = false;         }         // 绑定数据表后将性别列中每一单元格

    3.7K20

    WinForm 为 DataGridViewCell 绑定 DataGridView

    对外提供一个 public 方法: // 正常 Type1 是 JSON 数据集或者 BSON 数据集 public void FillDataGridView(Type1 data, DataGridView...){             // 创建子 DataGridview             // 属性根据自己需要设定             DataGridView view = new DataGridView... = gridView;             // 以下这种方法,需要单元格都是等长等宽才能有好效果             view.Left = gridView.Left + gridView.RowHeadersWidth...DataGridview 以及子 DataGridview 设置响应事件             // 以至于达到我们想要效果:点击 cell 用另外一个 DataGridview 显示出该 cell...view.Visible = true;         // 此处让 view 获得焦点时为了给 GridViewLeave 提供方便         // 如果此处不加 Focus 的话,就需要先点击

    1K50

    WPF备忘录(3)如何从 Datagrid 中获得单元格内容与 使用转换器进行绑定数据转换IValueConverter

    一、如何从 Datagrid 中获得单元格内容    DataGrid 属于一种 ItemsControl, 因此,它有 Items 属性并且用ItemContainer 封装它 items. ...但是,WPF中DataGrid 不同于Windows Forms中 DataGridView。 ...在DataGridItems集合中,DataGridRow 是一个Item,但是,它里面的单元格却是被封装在 DataGridCellsPresenter 容器中;因此,我们不能使用 像DataGridView.Rows.Cells...这样语句去获得单元格内容。...IValueConverter  有的时候,我们想让绑定数据以其他格式显示出来,或者转换成其他类型,我们可以 使用转换器来实现.比如我数据中保存了一个文件路径”c:\abc\abc.exe”

    5.5K70

    期末作业C#实现学生宿舍管理系统

    开发背景 完整代码下载地址:点我下载 优化移步: 《c#中在datagridview表格动态增加一个按钮方法》 《C#实现多窗口切换:Panel详细教程(亲测)》 文章还在更新上次更新时间2022...做一个获取,需要获取id,来进行删除,首先新建一个“删除”按钮 双击在该方法中加入代码(这部分代码很关键,建议看懂,在开发中我找到另外一个方法不过他存在bug,这个无论有没有不会报错)...,所以步骤是一样,新建一个修改按钮,如下图所示: 双击后我们在该点击事件加入获取id代码(和刚刚一样): //修改 int index = dataGridView1.SelectedCells...答:通过表单传记录id在新一个窗口查询一次数据,更新则是用了update 如果做到删除?...答:通过表单传获取到id进行数据库语句删除,删除本地再删除数据库里面的 窗口如何传: 本次通过构造函数,特点:传是单向(不可以互相传),实现简单 实现代码如下: 在目标窗体中 int

    27130

    MultiRow中文版技术白皮书

    同时,MultiRow缺省内置了大约二十多种单元格类型,这些单元格大部分都是嵌入了Microsoft .NET标准控件,可以满足大多数应用程序基本需求。...在数据校验方面,MultiRow内置了十余种校验器,可以方便满足诸如范围校验,比较校验,正则表达式校验等,当校验失败时,可以以Tip,Icon,声音等多种方式提示用户,以便重新输入正确。...重视易用性 为了降低用户学习成本,MultiRow采用了和DataGridView相似的接口设计,对于曾经使用过Microsoft DataGridView或者熟悉DataGridView接口设计开发人员...MultiRow三种典型应用场景 具有复杂布局数据表格 数据源每一条记录根据模板上设置进行展示,同时,用户也可以做选择,编辑,及更新数据等操作。 ?...另外,最近我们正在举办“葡萄城控件有奖调查”,二等奖将免费获得一套MultiRow中文版,并且含服务。

    1.3K50

    C# 可视化程序设计机试知识点汇总,DBhelper类代码

    { //”=”号左边给全局变量typeID赋值, ”=”号右边获得选中第一行第一列转为string类型(列标号以数据库中顺序为准) typeID = this.dataGridView1....Text = this.dataGridView1.SelectedRows[0].Cells[1].Value.ToString(); //”=”号定义变量接收, ”=”号右边获得选中第一行第三列转为...事件) 第一步、获取值 //(获得文本框) string TypeName = this.textBox2.Text; //(判断复选框是否选中)选中了给IsAddBed赋值为”是“,否则为”否“...; } 修改(click事件) 第一步、获取值 //(获得文本框) string TypeName = this.textBox2.Text; //(判断复选框是否选中)选中了给...; } 删除(Click事件) //定义sql语句(typeID是全局变量,从DataGridView控件cellClick事件中获取选中隐藏类型ID) string sql = string.Format

    7.7K20
    领券