2017-08-11 12 views
0

DataGridViewには、Windows Fromのデザイン時に7つの列があります。今度はLoadItemReport()関数を呼び出すと、DataGridViewの3番目の位置に新しい列を挿入します。私はボタンをクリックしてこの関数を呼び出しています。列の追加は一度だけ行う必要があります。以前に列が追加されている場合は、次回のために列を追加すべきではありません。ボタンをクリックしてDataGridViewに列を挿入する方法?

ここに私のコードです。

private void LoadItemReport(List<InvoiceInfo> invList,List<string> temList)  
{  
    try  
    { 
     DataGridViewColumn clqty = new DataGridViewColumn() 
     { 
      HeaderText = "Qunatity", 
      CellTemplate = new DataGridViewTextBoxCell(), 
      Name = "clqty", 
      Width = 10 
     }; 

     dgvItems.Columns.Insert(3, clqty); 
    } 
    catch 
    { 
    } 
} 

ボタンをクリックすると、毎回新しい列が追加されます。私はそれが一度だけ起こるはずです。どこが間違っているの?

答えて

1

挿入する前に、その名前の列がグリッド内にあるかどうかを確認します。それは、グリッド内に存在しない場合のみに編集

DataGridViewColumn clqty = new DataGridViewColumn() 
{ 
    HeaderText = "Qunatity", 
    CellTemplate = new DataGridViewTextBoxCell(), 
    Name = "clqty", 
    Width = 10 
}; 

if (!dgvItems.Columns.Contains("clqty")) 
    dgvItems.Columns.Insert(3, clqty); 

EDIT
は、クレジットは、ビューがない場合

if (!dgvItems.Columns.Contains("clqty")) 
{ 
    DataGridViewColumn clqty = new DataGridViewColumn() 
    { 
     HeaderText = "Qunatity", 
     CellTemplate = new DataGridViewTextBoxCell(), 
     Name = "clqty", 
     Width = 10 
    }; 
    dgvItems.Columns.Insert(3, clqty); 
} 
+1

がclqty' 'の作成はのみ行われるべき@metrosmurfする列を作成します列を含まない(名前で)。 –

+0

@ MetroSmurf私の答えはうまくいくはずですが、あなたは正しいです。 DataGridViewColumnを作成する必要がなければ、何もしないでください。 – nolnah93

+0

@downvoterなぜ落としましたか? – nolnah93

関連する問題