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