簡體   English   中英

如何為DataGridView偽造“ AlternatingColumnsDefaultCellStyle”?

[英]How can I fake an “AlternatingColumnsDefaultCellStyle” for the DataGridView?

DataGridView具有“ AlternatingRowsDefaultCellStyle”,其作用類似於冠軍。 但是我需要相反的分界/裝飾。 是否有一個屬性可以使列背景的顏色與默認顏色不同,或者是否需要為CellFormatting事件編寫代碼,或者...?

UPDATE

好的,這似乎很奇怪:

使用此代碼,來自Ascension:

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

...我得到:

'System.Windows.Forms.DataGridViewColumn'不包含'ItemStyle'的定義,並且找不到擴展方法'ItemStyle'接受類型為'System.Windows.Forms.DataGridViewColumn'的第一個參數(您是否缺少using指令?或裝配參考?)

但是,如果僅輸入第一部分( dataGridView1.Columns [i]。 ),我確實會通過Intellisense獲得“ ItemStyle”作為選擇的有效選項,但是當我這樣做時,它會變成紅色(可能是“銳利”效果)。 之后的點允許選擇BackColor屬性,然后該屬性不是紅色。

為什么會發生這種奇怪的行為,並且有解決方法?

並且:紅色的Intellisense項目是否表示無法訪問,如果是,為什么顯示它們? “挑逗”成員是否有價值?

更新2

這可行(受提升的啟發,所以我給他/她正確的答案):

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

您是否嘗試過通過轉到DataGridView屬性->其他->列(打開的集合)-> DefaultCellStyle為每個列設置顏色

嘗試這個:

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; ;
                }
            }
        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM