0

DataGridView 有一个“AlternatingRowsDefaultCellStyle”,它就像一个冠军。但我需要相反的分界/装饰。是否有一个属性可以使列背景的颜色与默认颜色不同,或者我是否需要为 CellFormatting 事件编写代码,或者......?

更新

好的,这看起来很奇怪:

使用此代码,来自 Ascension:

dataGridView1.Columns[i].ItemStyle.BackColor = Color.Blue;

...我得到:

“System.Windows.Forms.DataGridViewColumn”不包含“ItemStyle”的定义,并且找不到接受“System.Windows.Forms.DataGridViewColumn”类型的第一个参数的扩展方法“ItemStyle”(您是否缺少 using 指令还是汇编参考?)

但是,如果我只输入第一部分(dataGridView1.Columns[i].),我会通过 Intellisense 获得“ItemStyle”作为选择的有效选项,但是当我输入时它会变成红色(可能是 Resharper 效果)。之后的一个点允许选择 BackColor 属性,然后它不是红色的。

为什么会发生这种奇怪的行为,是否有解决方法?

并且:红色 Intellisense 项目是否表示无法访问,如果是,为什么会显示它们?“预告片”成员有什么价值吗?

更新 2

这很有效(受 Ascension 的启发,所以我给他/她正确的答案):

DataGridViewCell cell = new DataGridViewTextBoxCell();
cell.Style.BackColor = Color.Wheat;
dataGridView1.Columns[i].CellTemplate = cell;
4

2 回答 2

2

您是否尝试通过转到 DataGridView Property -> Misc -> Columns (open collection) -> DefaultCellStyle 为每列设置颜色

于 2012-08-24T01:17:29.277 回答
2

试试这个:

DataGridView Property -> Misc -> Columns ... -> ItemStyle -> BackColor

或下面的脚本

protected void Page_Load(object sender, EventArgs e)
        {
            for (int i = 0; i < GridView1.Columns.Count; i++)
            {
                if (i % 2 == 0)
                {
                    GridView1.Columns[i].ItemStyle.BackColor = Color.Red;
                }
                else
                {
                    GridView1.Columns[i].ItemStyle.BackColor = Color.Blue; ;
                }
            }
        }
于 2012-08-24T02:05:49.917 回答