在我的应用程序中,它有两个名为datagridview1和datagridview2的datagridviews,我在datagridview1中有selectionChanged事件,它捕获在其中选择的数据,以便datagridview2的内容也根据datagridview1中所选行的产品名称进行更改 . . 我不知道为什么我的索引超出范围,因为我已经检查过datagridview1中至少有1行和2列 . 我正在使用DataView RowFilter函数 .
Here is my code:
private void datagridview1_SelectionChanged(object sender, EventArgs e)
{
view_1.RowFilter = "product_name = '" + datagridview1.SelectedRows[0].Cells[1].Value.ToString() +"'";
}
2 回答
当你取消选择行时,应该激活SelectionChanged事件,因此SelectedRows应该为空,因此你根本不能索引它 .
您应首先检查
Length
是否大于零,并且只有在它是,继续该功能 .此外,由于我看到您只处理一个选定的行,我建议您确保不允许在
DataGridView
控件上进行多行选择(除非需要其他内容,例如delete或其他) .就像Yorye Nathan所说:“你应该首先检查它的长度是否大于零,只有当它是,继续使用该功能 . ”