C#中Datagridview界面上显示出来了值但是代码获取时为null

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#中Datagridview界面上显示出来了值但是代码获取时为null相关的知识,希望对你有一定的参考价值。

DataGirdView用DataSource已经绑定好了值,
图中Datagridview界面上也已经显示出来了值,然后执行
string c = dgv_Handcappied.Rows[0].Cells[0].Value.ToString();时,获取到的值为null
执行完这一步就报错退出了
这是怎么回事?为什么获取不到值?Rows和Cells中的数字是多少都无法获取到值

参考技术A 如果你的数据是自动绑定 AutoGenerateColumns="True"
而不是制定每一列DataField绑定哪个字段的话
在后台dgv_Handcappied.Rows[0].Cells[0] 就不好用了 因为它会认为你的GridView是0列 所以你去不到数据追问

我用的是DataSource,每列都设置了要绑定DataTable中数据的列的ID
另外一套程序同样的方法就能读取到。。。

追答

dgv_Handcappied.Rows[0].Cells[0].Text.ToString();试试

不行就把你整个方法发出来看看

参考技术B Hi you should add selected function for the control
private void datagridview1_SelectionChanged(object sender, EventArgs e)

if (datagridview1.SelectedCells.Count > 0)

int selectedrowindex = datagridview1.SelectedCells[0].RowIndex;

DataGridViewRow selectedRow = datagridview1.Rows[selectedrowindex];

string a = Convert.ToString(selectedRow.Cells["you have to mention you cell corresponding column name"].Value);

追问

我是想不管选中哪行,都让它从列表的第0,0位置开始读取

本回答被提问者和网友采纳
参考技术C 试试在获取单元格内容前加上这个
dataGridView1.EndEdit = false;
参考技术D 可以把报错信息发出来看看吗追问

调试的时候一步一步执行不报错,直接退出。不调试就是 未将对象引用到设置的实例,报错就指向那一句

C#界面里的winform AutoScroll属性

C#界面里的winform AutoScroll属性

当一个软件在高分辨率的电脑设计时,常常会把很多功能都集中在一个界面上,这时在设计的电脑是可以完整显示的。
比如设计的电脑为27寸屏幕,但很多用户还是使用14寸的显示屏,导致很多界面上的元素不能显示出来,
这时候应该怎么办呢?
我们来深入地思考一下,为什么14寸的电脑不能显示出来,原因就是显示区域的大小不一样,导致设计界面上的东西显示不完整。
这种物理显示区的大小,我们无法去改变客户的设备,只能从虚拟界面上想办法。
其实可以这样来设想,能不能在14寸的显示屏里虚拟27寸显示面积,可以肯定地回答,这是可以的。
因为界面上的元素,都是分离为一些小元素,不需要全部显示,这样就可以采用滚动的方式来增加显示面积。
要想在界面里增加滚动,那么就需要添加AutoScroll属性。

 获取或设置一个值,该值指示窗体是否启用自动滚动。
若要在窗体上启用自动滚动,为 true;否则,为 false。 默认值为 false。

可以使用下面的例子来演示这个属性的使用:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text

以上是关于C#中Datagridview界面上显示出来了值但是代码获取时为null的主要内容,如果未能解决你的问题,请参考以下文章

c# winform datagridview界面上的行删了,但datagridview数据源没有同步如何解决

C#编写的一个界面 怎样实现dataGridView1里的内容在上面显示?

c# 中如何把实体类绑定到dataGridView并显示出来。

c# datagridview 绑定数据时逐行显示并且有进度条。问题如下:

c#中datagridview中能不能给指定的单元格赋值并让其在单元格中显示出来?

c# 将xml中的数据读取到dataGridView中显示的问题