"的NullReferenceException"当试图设置DataGridView列宽时,否则会带来数据

时间:2016-03-29 14:41:42

标签: c# datagridview

我从存储过程中获取数据,这可以在datagrid中显示,但是设置列宽度会一直抛出一个空异常:

C = {rand(10,2), rand(20,2), rand(30,2), rand(40, 2), rand(50,2)};
dots = cellfun(@(x)dot(x(1:end-1,:), x(2:end, :), 2), C, 'uniform', 0)

    [9x1 double]   [19x1 double]   [29x1 double]   [39x1 double]   [49x1 double]

完整代码:

str = "Prof. Dr. John Doe"
str.remove(/((Dr|Mr|Prof|Prin)\.? ?)/i)

设置ReadOnly并且单元格样式不会抛出错误,但设置宽度会出错。此代码与我对程序中的另一个数据网格所做的完全相同,后者从不同的过程中引入了更多列。我尝试格式化的程序现在没有任何空白值或其他任何内容。

修改 为清楚起见,这里是其他数据网格执行相同操作的代码完全正常。第二个数据网格也是第一个数据网格的副本,所以它的所有设置都是相同的(我还要检查以确保)

代码:

"John Doe"

1 个答案:

答案 0 :(得分:10)

我遇到了这个确切的问题,偶然发现了这个不起眼的解决方案 在设置宽度之前设置列的 AutoSizeMode 。例如:

dataGridView2.Columns[0].AutoSizeMode = DataGridViewAutoSizeColumnMode.None;
dataGridView2.Columns[0].Width = 60;
dataGridView2.Columns[0].ReadOnly = true;