2011-08-11 2 views
1

私は現在のセル(IDataGridViewEditingControl)内でDataGridViewとカスタム編集コントロールを使用している私のWinForms 2.0アプリケーションです。DataGridViewCellStyle.ForeColorが正常に動作しない

現在のセルは、テキストボックスから継承し、IDataGridViewEditingControlインターフェイスを実装する私のカスタム編集コントロールを使用します。このコントロールは、値が編集されている間にいくつかの検証ロジックを実行するためにTextChangedイベントに登録し、カスタム編集コントロールからDataGridViewセルにいくつかの視覚効果を適用するLeaveイベントに登録します。

コードはやや次のようになります。

public class CustomerTextEditingControl : CustomerTextBox, IDataGridViewEditingControl 
{ 
    ... 
    protected override void OnLeave(object sender, EventArgs e) 
    { 
     dataGridView[_col, _row].Style.BackColor = BackgroundColor; 
     dataGridView[_col, _row].Style.ForeColor = ForegroundColor; 
     ... 
    } 
    ... 
} 

ここで今私の問題だん:セルの背景が正しくBackgroundColorをは、テキスト自体は常に黒で描画されるかもしれないどんな色でレンダリングされている間、どんな色ForegroundColorはです。最初に、セルのコンテンツに適用される別のスタイルがあるかもしれないと思っていましたが、そこに何も見つかりませんでした。だから今私は困惑しています:-)

何か助けに感謝します!

おかげ マルク

+0

ブレークポイントを設定すると、ForeColorが実際にスタイルに割り当てられているかどうかを確認できますか? –

+0

はい、割り当てが実行されます – Marc

+0

これは、イベントのチェーンの後の時点でForeColorを上書きすることを意味します。あなたは私の側でテストできるように、バーハイを再現する最小限のコードを投稿できますか? –

答えて

1

は、問題を発見:DataGridViewのクラスをサブクラス化し、OnPaintCell方法は、オーバーライドされました。

関連する問題