DataGridView排序完成的事件
界面有2DataGridView---dgva,dgvb,dgva的源通查得到,泛型源。dgva中的行改,自跟新dgvb的源。用的是dgvCIQBargNO1_SelectionChanged事件。
代如下:
private void dgvCIQBargNO1_SelectionChanged(object sender, EventArgs e)
{
this.dgvb.DataSource = bitem.GetBargainPNList(this.dgva.SelectedRows[0].Cells[0].Value.ToString());
}
:我列行排序,出此----Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
!
[解决办法]
bb_chen,你试试在DEBUG模式下用WATCH窗口查看一下dgva.SelectedRows这个集合是否为空,我想或许是因为在发生排序事件时,GridView自动将SelectedIndex设置为-1,此时出发了SelectionChanged事件,同时SelectedRows集合为空,导致了上述异常,解决该问题可以在SelectionChanged事件中添加一个判断,如下:
- C# code
private void dgvCIQBargNO1_SelectionChanged(object sender, EventArgs e) { if (dgva.SelectedIndex >= 0) { this.dgvb.DataSource = bitem.GetBargainPNList(this.dgva.SelectedRows[0].Cells[0].Value.ToString()); dgvb.DataBind(); }}
[解决办法]
先debug吧