-2

我目前正在我的 winform 应用程序中向多个 datagridviews 添加行,因为当某些东西不存在时,索引超出范围。我与我的团队进行了现场会议,他们希望所有项目都在一个数据网格视图中。我尝试使用 for 和 for 每个语句,但如果第一个项目存在,第二个不存在并且第三个存在,我的项目仍然超出范围。我在下面提供了我当前的 IF 声明。任何可用于显示行的方法,而不管它们的索引如何?我当前的索引是硬编码的,这是我让它跨多个数据网格视图工作的唯一方法。在此先感谢程序员的任何帮助!

 //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;
                    }
4

1 回答 1

0

您每次都在添加新行并使用行索引,因此它永远不会超出范围。如果缺少任何列信息,您应该查找列,那么它将引发索引超出范围异常。检查您正在使用的所有数据网格视图

于 2013-07-29T13:48:13.027 回答