关于ListView表头重绘的问题!
在重绘listview表头时
我是在DrawColumnHeader事件下完成
发现当column少时不能填充满整个listview时,windows回自动追加一段背景色
请教这段背景色该如何重绘? 有人说要用API得到listView句柄创建Graphics对象
试了试,发现我的代码不能正确的引发重绘,我也不大懂API,请教该如何修改?或者还有别的好方法?
代码如下:
[DllImport("user32.dll",EntryPoint="GetWindowDC",CharSet=CharSet.Auto,ExactSpelling=true)]
private static extern IntPtr GetWindowDC(IntPtr hWnd);
protected override void OnDrawColumnHeader(DrawListViewColumnHeaderEventArgs e)
{
.....
}
protected override void OnPaint(PaintEventArgs e)
{
//我在这里创建Graphics对象,不知道对不对
Graphics g = Graphics.FromHdc(GetWindowDC(this.Handle));
g.FillRectangle(Brushes.Black, new Rectangle(0, 0, this.Width, 30)); //希望为表头做背景色
base.OnPaint(e);
}