2008年4月15日星期二

DateTimePicker背景色設定方法

DateTimePickerの背景色設定はMSのBUGです。
下記のSRCで背景色を設定できます。
注意点は:
① Graphics作成:Graphics.FromHdc(m.WParam);
② SolidBrush作成:new SolidBrush(Color);
SolidBrushではFillのメッソドがあります。範囲内の色設定はできます。
③ 色設定
g.FillRectangle(backBrush, ClientRectangle);
④ 最後の片付け処理。
brush.Dispose()
g.Dispose();

----------------------SRC---------
///
/// 背景色の設定
///

///
protected override void WndProc(ref Message m)
{
// 背景色を描きなおし場合、
if (m.Msg == 0x14) // WM_ERASEBKGND
{
// get Graphics object
Graphics g = Graphics.FromHdc(m.WParam);
// get Brush object
SolidBrush backBrush = new SolidBrush(this.BackColor);
// 背景色設定
g.FillRectangle(backBrush, ClientRectangle);
// Brush objectを解放
backBrush.Dispose();
// Graphics objectを解放
g.Dispose();
         // システムの書き直しは止めさせる。
return;
}
base.WndProc(ref m);
}

没有评论: