0

私は奇妙な問題を抱えています。リストを DataSource に割り当てた後。グリッドをクリックすると、エラーが表示されますIndex -1 does not have value。どこにtry and catchを配置しても、このエラーはキャッチされません。

以下は、リストにデータを追加して DataSource に割り当てるコードです。

try
{
    this.GrdMain.DataSource = null;
    this.order.LineItems.Add(oli);
    this.GrdMain.DataSource = order.LineItems;
    this.FormatGrid();
}
catch (Exception ex)
{
    MessageBox.Show(ex.Message, "btnAddLine_Click");
}

以下はコードですFormatGrid()

    private void FormatGrid()
    {
        try
        {
        for (int i = 0; i < this.GrdMain.Columns.Count; i++)
        {

            if (this.GrdMain.Columns[i].Name.ToUpper() == "ItemCode".ToUpper())
            {
                DataGridViewColumn column1 = this.GrdMain.Columns[i];
                column1.Width = 60;

            }
            else if (this.GrdMain.Columns[i].Name.ToUpper() == "ItemName".ToUpper())
            {
                DataGridViewColumn column1 = this.GrdMain.Columns[i];
                column1.Width = 200;

            }
            else if (this.GrdMain.Columns[i].Name.ToUpper() == "Disposable".ToUpper())
            {
                DataGridViewColumn column1 = this.GrdMain.Columns[i];
                column1.Width = 60;
                column1.HeaderText = "Disposable";


            }
            else if (this.GrdMain.Columns[i].Name.ToUpper() == "Rate".ToUpper())
            {
                DataGridViewColumn column1 = this.GrdMain.Columns[i];
                column1.Width = 70;

            }
            else if (this.GrdMain.Columns[i].Name.ToUpper() == "Qty".ToUpper())
            {
                DataGridViewColumn column1 = this.GrdMain.Columns[i];
                column1.Width = 70;

            }
            else if (this.GrdMain.Columns[i].Name.ToUpper() == "Total".ToUpper())
            {
                DataGridViewColumn column1 = this.GrdMain.Columns[i];
                column1.Width = 70;

            }
            else 
                GrdMain.Columns[i].Visible = false;

        }
        }
        catch (Exception ex)
        {

            MessageBox.Show(ex.Message, "FormatGrid");
        }
    }
4

0 に答える 0