为什么 DataGridView 显示更新落后一步
why does DataGridView show update a step behind
我有一个 winform,其中包括一个 DataGridView
和一个 Button
以及一些其他控件。我正在手动添加和删除 datagridview 的列和行。一个RefreshContent()
方法遍历一些数组,通过下面
更新datagridview
datagridview.Columns[i].Name = somestring;
或
datagridview.Rows.Add(someobject);
RefreshContent()
在事件处理程序 OnButtonClick
中被调用,绑定到我上面提到的按钮。
问题是我单击按钮并且 datagridview 没有任何反应,直到我与另一个控件交互。这就像 datagridview 显示数据更新落后了一步......我什至尝试将它添加到我的事件处理程序的末尾:
private void OnButtonClick(object s, EventArgs e)
{
// .... some code
RefreshContent();
var ds = dataGridView1.DataSource;
dataGridView1.DataSource = null;
dataGridView1.DataSource = ds;
dataGridView1.Refresh();
}
无济于事。我不太擅长winforms。
问题是 RefreshContent
调用了另一个方法来更新作为参数传递给 RefreshContent
的数组,而没有 ref
。 RefreshContent
没有看到变化。因此它并没有真正刷新datagridview。
记住伙计们,数组通常按值而不是引用传递,除非使用 ref
(c#)
我有一个 winform,其中包括一个 DataGridView
和一个 Button
以及一些其他控件。我正在手动添加和删除 datagridview 的列和行。一个RefreshContent()
方法遍历一些数组,通过下面
datagridview.Columns[i].Name = somestring;
或
datagridview.Rows.Add(someobject);
RefreshContent()
在事件处理程序 OnButtonClick
中被调用,绑定到我上面提到的按钮。
问题是我单击按钮并且 datagridview 没有任何反应,直到我与另一个控件交互。这就像 datagridview 显示数据更新落后了一步......我什至尝试将它添加到我的事件处理程序的末尾:
private void OnButtonClick(object s, EventArgs e)
{
// .... some code
RefreshContent();
var ds = dataGridView1.DataSource;
dataGridView1.DataSource = null;
dataGridView1.DataSource = ds;
dataGridView1.Refresh();
}
无济于事。我不太擅长winforms。
问题是 RefreshContent
调用了另一个方法来更新作为参数传递给 RefreshContent
的数组,而没有 ref
。 RefreshContent
没有看到变化。因此它并没有真正刷新datagridview。
记住伙计们,数组通常按值而不是引用传递,除非使用 ref
(c#)