当添加了足够多的项目以扩展到窗口之外时,DataGridView是否会崩溃?

时间:2011-09-20 14:15:28

标签: c# datagridview

我有一个DataGridView,一旦从Udp服务器返回,我就会填充值。当我的程序只有几个值时,如果检索到足够的值,对话框需要在对话框外扩展,DataGridView会冻结。

我已经创建了这个用于填充DataGrid的简单方法。

public void populateGrid(string[] data)
        {
            dataGrid.Rows.Add(data);
        }

2 个答案:

答案 0 :(得分:0)

Winforms DataGridView确实应该能够轻松扩展到可见之外。我经常编写的其中一个程序在其某些DGV中有数千个项目,并且该软件中的DGV随处可见。我使用Rows.Add()方法填充列表,与您正在进行的操作完全不同。

问题变成了,你如何使用这个populateGrid方法?您是在循环调用,还是使用带有用户输入数据的控件来形成每行的数组?如何设置GridView(只读?用户可以添加/删除行吗?)是否有事件响应DGV元素的大小调整?你是否“懒加载”来自某些数据源的记录来填充这个DGV?

尝试附加调试器并点击“暂停”按钮以查看系统挂起的位置。您可能会在调用堆栈中看到重复指示事件处理程序的无限循环,或者它可能挂在您希望快速但正在等待麻烦的数据源或提取多于您需要的信息的方法调用上。

答案 1 :(得分:0)

我不确定如何或为什么,但是通过创建一个后台工作者并在DGV上调用一个委托,我完成了在没有系统冻结的情况下添加项目,并且后台工作者到达了它已完成的事件。

相关问题