2017-08-11 74 views
0

我的DataGridView在我的Windows From中有7個設計時間列。現在我想在第三個位置的DataGridView中插入一個新列,當我調用LoadItemReport()函數時。我正在通過按鈕單擊調用此功能。添加一列應該只發生一次。如果該列先前已添加,則不應在下一次添加該列。如何在按鈕上的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); 

編輯
編輯僅創建列,如果它不是在網格中,信貸@metrosmurf

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'的'創作如果這個視圖只應不包含列(按名稱),而不是以前。 –

+0

@MetroSmurf我的答案應該可行,但你是對的。如果我們不打算對它做任何事情,則不需要創建DataGridViewColumn。 – nolnah93

+0

@downvoter你爲什麼downvote? – nolnah93