使用自己的类创建的.NET Datagridview

时间:2013-09-11 14:26:35

标签: .net winforms datagridview

我写了一个类来显示包含datagridview的表单。该类连接到数据库,创建datatable并将其用作datagridview的来源。

然后,我使用datagridviewControls.Add()添加到表单。

使用ShowDialog()显示表单时,列会按预期显示。

但是,如果我尝试在datagridview之前编辑ShowDialog()列(宽度等),则会出错。如果我在调试中计算行数,则它们为0.但是,如果我进入ShowDialog()操作(绕过试图编辑列的任何内容),则表单将显示所有列。

我想知道在datagridview列显示给用户之前我需要在哪些位置进行编辑。

对此的任何帮助都将非常感激。

2 个答案:

答案 0 :(得分:0)

知道了。我需要在Form Load事件中添加一个Handler并将调整放在那里。

答案 1 :(得分:0)

  

但是,如果我尝试在ShowDialog之前编辑datagridview列(宽度等),我会收到错误。 (...) 得到它了。我需要在Form Load事件中添加一个Handler并将调整放在那里。

我猜您尝试访问尚不存在的列。

您正在使用DataGridView.AutoGenerateColumns功能,即使设置了DataSource属性,DatagridView也不会创建列,直到显示网格。

这就是为什么当您在调用ShowDialog()之前尝试访问列时它不起作用,并且它在form_Load事件中工作或之后显示网格。

这是一个常见问题:

使用form_Load可能是一种可能的解决方法(不保证每次都可以使用),但我建议您使用专门为处理此问题而设计的<{3}}事件情况