環境: OS WindowsXP(SP3) , 言語 VB2005 , DB Oralce9i
DataGridView にボタンを追加して
ボタンの文字を 太字&青色にしたいのですが
WindowsのスタイルをXPスタイルにしている
と太字にはなるのですが青色にはなりませんが
クラシックスタイルにすると青色になります。
XPスタイルでも青色にできないでしょうか?
-- コード --
Private Sub DataGridView1_CellPainting(....) Handles DataGridView1.CellPainting
If e.ColumnIndex >= 0 AndAlso e.RowIndex >= 0 AndAlso _
(e.PaintParts And DataGridViewPaintParts.Background) = _
DataGridViewPaintParts.Background Then
DataGridView1("0, e.RowIndex).Style..ForeColor = Color.Blue
End If
End Sub
以上宜しくお願いします。
VisualStyle ってのはそういうもんなので。
// 例えば、ボタンの背景色に青色を使っているテーマがあったときに、文字色を青色にされてしまっては困りますよね。
DataGridViewButtonCell クラスの解説にも、
> visual スタイルを有効にすると、ボタン列に含まれる各ボタンが、ButtonRenderer を使って描画されます。
> DefaultCellStyle などのプロパティを使って指定されたセル スタイルは無視されます。
というメモが書かれています。
どうしてもというなら CellPainting イベントで自分で描画することになりますね。
DataGridViewButtonCell クラスはボタンの状態(押下中かとかホバー状態かとか)を公開していないので、自分で判断することになります。DataGridView.HitTest とかでしょうか。スペースやエンターによる押下ってどうやって判断するんだろ。
ボタンの描画自体は、ButtonRenderer にボタンのみでテキストを描画しない描画メソッドがあるので、それを使えばいいでしょう。
Hongliangさんアドバイスありがとうございます。
返事が遅くなり申し訳ありません。
どうしてもというわけではないので
現状でいきます。
ありがとうございました。
ツイート | ![]() |