为什么datagridview刷新两次后会消失?

时间:2010-11-05 18:42:25

标签: c# .net data-binding

在表单加载时,我的datagridview显示一个数据表。一旦用户单击删除按钮,它将删除数据源中的一行:

private void btnDelete_Click(object sender, EventArgs e)
        {
            Int32 selectedRowCount =
        dataGridView1.Rows.GetRowCount(DataGridViewElementStates.Selected);
            if (selectedRowCount == 1)
            {


                    qResults.Rows.RemoveAt(dataGridView1.SelectedRows[0].Index);
                    chart1.DataSource = qResults;
                    InitializeChart();

                    dataGridView1.Columns.Clear();
                    dataGridView1.DataBindings.Clear();
                    dataGridView1.DataSource = qResults;


            }
        }

我第一次点击此按钮,它可以工作。它会从源中删除数据点并刷新图表。但是,第二次点击它,它完全消除了datagridview并显示NOTHING。 但请注意图表正确显示

任何人都知道我的错误是什么?

1 个答案:

答案 0 :(得分:2)

您是否尝试完全注释掉图表代码并查看您的datagridview是否仍显示相同的行为?

另外:什么是qResults?这种类型不清楚。如果您使用像BindingSource这样的数据源,则可能不需要重置datagridview的数据源并清除其绑定和列;具有datagridview的BindingSource会为您处理这个问题。

如果qResults是DataTable,请尝试使用BindingSource。将DataTable设置为BindingSource的数据源,然后将BindingSource设置为datagridview的数据源,然后查看删除时会发生什么。

最后,您是否在某处有明确的数据绑定代码,或者您是否自动生成了datagridview列?