私は奇妙な問題を抱えています。リストを 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");
}
}