我写了一个类来显示包含datagridview
的表单。该类连接到数据库,创建datatable
并将其用作datagridview
的来源。
然后,我使用datagridview
将Controls.Add()
添加到表单。
使用ShowDialog()
显示表单时,列会按预期显示。
但是,如果我尝试在datagridview
之前编辑ShowDialog()
列(宽度等),则会出错。如果我在调试中计算行数,则它们为0.但是,如果我进入ShowDialog()
操作(绕过试图编辑列的任何内容),则表单将显示所有列。
我想知道在datagridview
列显示给用户之前我需要在哪些位置进行编辑。
对此的任何帮助都将非常感激。
答案 0 :(得分:0)
知道了。我需要在Form Load事件中添加一个Handler并将调整放在那里。
答案 1 :(得分:0)
但是,如果我尝试在ShowDialog之前编辑datagridview列(宽度等),我会收到错误。 (...) 得到它了。我需要在Form Load事件中添加一个Handler并将调整放在那里。
我猜您尝试访问尚不存在的列。
您正在使用DataGridView.AutoGenerateColumns
功能,即使设置了DataSource
属性,DatagridView
也不会创建列,直到显示网格。
这就是为什么当您在调用ShowDialog()
之前尝试访问列时它不起作用,并且它在form_Load
事件中工作或之后显示网格。
这是一个常见问题:
使用form_Load
可能是一种可能的解决方法(不保证每次都可以使用),但我建议您使用专门为处理此问题而设计的<{3}}事件情况强>