日期:2014-05-17  浏览次数:21060 次

ListView.Columns.Contains 用法。。。。。急

ColumnHeader header1 = new ColumnHeader();
                    header1.Text = "test";
                    if (this.lvwShow.Columns.Contains(header1))
                    {
                        int columnsIndex = lvwShow.Columns.IndexOf(header1);



我想判断ListView中是否有test列表的那一列。有的话就找到她它的位置。。各位大虾。。这样写有问题吗?(事实证明这样真找不到。。。求方法)

------解决方案--------------------
这样写有问题,你的header是重新new出来的,即使其他列有“test”,也不会找到的,因为这是两个对象,比较根本不会相等
ColumnHeader header1 = new ColumnHeader();
                    header1.Text = "test";
foreach(ColumnHeader h in this.lvwShow.Columns)
  {
                  if (h.Text==header1.Text)
                    {
                        int columnsIndex = lvwShow.Columns.IndexOf(h);
                }
}
------解决方案--------------------
引用:
这样写有问题,你的header是重新new出来的,即使其他列有“test”,也不会找到的,因为这是两个对象,比较根本不会相等
ColumnHeader header1 = new ColumnHeader();
                    header1.Text = "test";
foreach(ColumnHeader h in this.lvwS……

正解