将样式应用于所有列除第一列外

时间:2018-01-24 14:29:40

标签: c# radgrid radgridview

我正在尝试使用C#将样式应用于除第一个之外的网格中的所有列。这是我的语法,但它会命中我的if()语句并立即离开。

编写此语法的正确方法是什么?

foreach(GridColumn col in r.Columns)
{            
    if (col != r.MasterTableView.Columns[0])
    {
        col.ItemStyle.HorizontalAlign = HorizontalAlign.Center;
    }
}

2 个答案:

答案 0 :(得分:1)

我猜想r.Columns中的第一列和r.MasterTableView.Columns中的第一列绝不是一回事,所以你的if测试总是失败。

假设可以索引r.Columns,最简单的方法是更改​​for的foreach,然后检查索引,如下所示:

for( int columnIndex = 1 ; columnIndex < r.Columns.Count ; ++ columnIndex )
{            
    r.Columns[columnIndex].ItemStyle.HorizontalAlign = HorizontalAlign.Center;
}

由于列集可能正确地从0开始,因此启动&#34; columnIndex&#34;迭代器变量从1表示跳过第0列,样式更改将应用​​于所有其他列。

如评论中所述,您还可以使用Linq Skip()函数从第二项启动foreach迭代,如下所示:

foreach(GridColumn col in r.Columns.Skip(1))
{            
    ...
}

希望这有帮助

答案 1 :(得分:0)

试试这个:

for(int i = 1; i < r.Columns.Count; i++)
{        
    r.MasterTableView.Columns[i].ItemStyle.HorizontalAlign = HorizontalAlign.Center;
}
相关问题