2016-08-18 115 views
0
for (int i = 0; i < completeInfoMatches.Count; i++) { 
    if (!(databaseGridView.Columns.Contains(e.Node.Parent.Text))) { 
     Console.WriteLine(e.Node.Parent.Text); 
     databaseGridView.Columns.Add("column" + i, e.Node.Parent.Text); 
    } 
} 

如果该列已有名称,我不希望它被添加。检查DataGridView中是否存在列

我的代码似乎会工作,但由于某种原因它不?

+2

_“不” _ ??? –

+0

错误的列名? – Aybe

+3

您是否将HeaderText列的名称混淆? – Steve

回答

0

看来你的e.Node.Parent.Text字符串是指列的HeaderText而不是Name属性。如果是这种情况,那么找到的代码,如果一个的HeaderText你e.Node.Parent.Text的相同值存在的以下

for (int i = 0; i < completeInfoMatches.Count; i++) 
{ 
    if (!(databaseGridView.Columns 
       .Cast<DataGridViewColumn>() 
       .Any(x => x.HeaderText == e.Node.Parent.Text))) 
    { 
     Console.WriteLine(e.Node.Parent.Text); 
     databaseGridView.Columns.Add("column" + i, e.Node.Parent.Text); 
    } 
}