3

FormatConditions を使用して、プロパティに基づいて特定の行をフォーマットしています。たとえば、多くの行を持つ gridcontrol があり、エラーが発生すると一部の行が赤色になります。私が抱えている問題は、行が選択されると、書式設定が消えて青くなることです。

選択した行の色を、その行の色よりも少し暗い色合いにしたいと思います。つまり、行がシェーディングされたときの色がわかりますが、それが選択されていることもわかります。

これを行う最善の方法は何ですか?

4

2 に答える 2

2

GridView.CustomDrawCell イベントを処理し、選択した行に属しているかどうかにかかわらず、現在のセルの状態を取得します。

//セルの状態を取得 - e.Cell は現在のセルへのアクセスを提供してペイントします-

 GridRowCellState state = ((GridCellInfo)e.Cell).State;

次に、選択した行セルを確認します

if ((state & GridRowCellState.Selected) == GridRowCellState.Selected)
{
// do your custrom drawing here.
// for example 
e.DisplayText = "";
e.Appearance.BorderColor = Color.White;
}

次に、要件に従ってセルをカスタムペイントした後 、CustomDrawEventArgs.Handled プロパティを設定します。e.Handled = true or false;

次のドキュメント リンクを参照してください。
カスタム ペインティングの基本
カスタム ペインティングのサンプル

于 2012-02-21T09:25:24.387 に答える
1

GridView.CustomDrawCellイベントを処理し、現在の行の状態に基づいて行の色を設定することで、これを手動で行う必要があると思います。メモリが正しく機能する場合は、RowCellCustomDrawEventArgs.Cellプロパティで行の状態情報を確認する必要があります。

あなたの質問から、行が選択されているときの動作を変更するだけでよいので、行が選択されていない場合はカスタム描画( set e.Handled=False)をスキップでき、既存の機能は変更されません。

于 2012-02-16T08:36:15.493 に答える