8

我有一个 datagridview 表,我需要在其中显示一些数据。在某些情况下,我超出了列数限制并收到以下错误:

列的 FillWeight 值之和不能超过 65535

有没有其他工具可以用来克服这个限制?

4

3 回答 3

17

打开一个网格事件columnAdded

private void dataGridViewName_ColumnAdded(object sender, DataGridViewColumnEventArgs e)
{
    e.Column.FillWeight = 10;    // <<this line will help you
}
于 2015-08-19T21:30:20.553 回答
11

DataGridView 中一列的默认填充权重为 100。这与网格的最大组合填充权重 65535 相结合意味着,如果AutoGenerateColumns设置为 true,则数据源中的列数不能超过 655。

如果您需要比这更多的列,那么唯一的解决方案是将AutoGenerateColumns网格设置为 false,然后手动添加具有不同填充权重的列(我不确定 0 是否是有效的填充权重,因此您可能需要使用 1)。


考虑不同的设计可能是值得的 - 在 DataGridView 中有这么多列不会很有用,DataGridView 的性能最多只能调整 100 列(我从DataGridView 的这个论坛帖子中得到了这个数字项目经理)

于 2013-05-12T13:48:21.737 回答
-6

如果它是 65,535,它的 16 位数(因为 2^16=65,536)。这意味着你已经接受了一个Int16变量。为了增加此数据类型的限制,您应该使用Int32Int64数据类型。

于 2013-05-12T13:12:33.960 回答