我目前正在winform应用程序中向多个datagridviews添加行,因为当某些内容不存在时,索引超出范围。我与我的团队进行了现场会议,他们希望所有项目都在一个数据网格视图中。我试图使用for和for each语句但是如果第1项存在,我的项目仍然超出范围,第二项没有,第三项存在。我在下面提供了我目前的IF声明。任何可用于显示行的方法,无论其索引如何?我当前的索引是硬编码的,这是我在多个datagridviews中工作的唯一方法。在此先感谢任何协助程序员!!
//add link to row for case selected
#region "if statements for eFacts, History, Summary and Driving history"
//this row will always exist first
dataGridViewMiddle.Rows.Add(1);
dataGridViewMiddle[0, 0].Value = "eFacts";
dataGridViewMiddle[1, 0].Value = eFacts.Text;
//add link to History row for case selected
if (caseCat == "CF" || caseCat == "MM" || caseCat == "CT" || caseCat == "CJ")
{
dataGridViewMiddle.Rows.Add(1);
dataGridViewMiddle[0, 1].Value = "Arrest History";
dataGridViewMiddle[1, 1].Value = Arrest_History.Text;
}
//add link to Summary row for case selected
if (caseSummary.Contains(caseCat))
{
DGVsummary.Rows.Add(1);
DGVsummary[0, 0].Value = "Summary";
DGVsummary[1, 0].Value = Summary.Text;
DGVsummary.Visible = true;
}
else
{
DGVsummary.Visible = false;
}
//add link to Driving History row for case selected
if (license != "")
{
DGVdriverLicense.Rows.Add(1);
DGVdriverLicense[0, 0].Value = DLnumber.Text;
DGVdriverLicense[1, 0].Value = Driving_History.Text;
DGVdriverLicense.Visible = true;
}
答案 0 :(得分:0)
您每次都在添加新行并使用行索引,因此它永远不会超出范围。如果缺少任何列信息,您应该查找列,然后它会使索引超出范围异常。检查您正在使用的所有数据网格视图