在表单加载时,我的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。 但请注意图表正确显示
任何人都知道我的错误是什么?
答案 0 :(得分:2)
您是否尝试完全注释掉图表代码并查看您的datagridview是否仍显示相同的行为?
另外:什么是qResults?这种类型不清楚。如果您使用像BindingSource这样的数据源,则可能不需要重置datagridview的数据源并清除其绑定和列;具有datagridview的BindingSource会为您处理这个问题。
如果qResults是DataTable,请尝试使用BindingSource。将DataTable设置为BindingSource的数据源,然后将BindingSource设置为datagridview的数据源,然后查看删除时会发生什么。
最后,您是否在某处有明确的数据绑定代码,或者您是否自动生成了datagridview列?