2017-08-11 69 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

相关问题