0

DataGridView には、チャンピオンのように機能する「AlternatingRowsDefaultCellStyle」があります。しかし、反対の種類の境界/装飾が必要です。列の背景をデフォルトとは異なる色にできるプロパティはありますか、それとも CellFormatting イベントのコードを記述する必要がありますか?

アップデート

OK、これは奇妙に思えます:

このコードでは、アセンションから:

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

これは機能します(アセンションに触発されたので、私は彼/彼女に正しい答えを与えています):

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

2 に答える 2

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 に答える
2

DataGridView Property -> Misc -> Columns (open collection) -> DefaultCellStyle に移動して、各列の色を設定しようとしましたか?

于 2012-08-24T01:17:29.277 に答える