1

DataGridView 行の背景色を赤に設定しようとしています。次の行で試しました:

dgvActiveCalls.Rows[1].DefaultCellStyle.BackColor = Color.Red;

しかし、うまくいきません。次に、更新に問題があるかどうかを確認するために、行ではなく列をペイントしようとしました:

dgvActiveCalls.Columns[1].DefaultCellStyle.BackColor = Color.Red;

そしてそれはうまくいきました。誰かが DataGridView 行を描画する方法を示すことができれば、本当に感謝しています。

ありがとう!

4

3 に答える 3

1

Make sure that the default style isn't being overriden by another of the styles. Interesting quirk of DGV in 2.0: Seems like the inheritence chain is almost upside down from what you'd expect. If you are dynamically adding columns, your DefaultCellStyle can be ignored and be overridden by the RowsDefaultCellStyle. Sorting can also override styles you've set.

これらのスタイルを設定する順序を確認し、スタイルの継承に関するいくつかの記事をグーグルで検索することをお勧めします。

PS興味深いことに、提供するリンクをグーグルで検索したところ、ほぼ同じ説明でこのブログに出くわしました。

http://yakkowarner.blogspot.com/2008/06/datagridview-style-inheritance.html

于 2008-11-04T20:57:17.253 に答える
0

私は自分のマシンでそれをテストしましたが、うまくいきました。その行が強調表示されていませんか? 強調表示されている場合は、赤ではなく、強調表示された色が表示されます。

于 2008-11-04T18:51:05.090 に答える
0

そのコードを DataGridView の RowPrePaint イベント内に配置することをお勧めします。例えば:

private void dgv_RowPrePaint(object sender, DataGridViewRowPrePaintEventArgs e)
{
    /*Here you put your validation in order to paint only the row that you want*/
    if (e.RowIndex == 1)
    {
         DataGridViewRow row = ((DataGridView)sender).Rows[e.RowIndex];
         row.DefaultCellStyle.BackColor = Color.Red;
    }                
}
于 2018-12-17T22:29:35.153 に答える