C# WinForm控件美化扩展系列之ListView
文件大小: 161k
源码售价: 10 个金币 积分规则     积分充值
资源说明:前面的一篇文章C# WinForm控件美化扩展系列之ListView(2)中,存在列表项文本错乱的问题,这是因为绘制文本的时候不小心选错了一个属性,把SubItem选成了Item,所以总会得到了第一项的文本。除了修正这个错误外,对列表项选中后的背景画法进行了改变,使得选中的列表项不在是每个子项都有一个矩形边框,而是全部只有一个矩形边框。另外,实现了对ListView的边框的重绘,可以轻易的更换边框颜色。 如下: private void WmNcPaint(ref Message m) { base.WndProc(ref m); if (base.BorderStyle == BorderStyle.None) { return; } IntPtr hDC = NativeMethods.GetWindowDC(m.HWnd); if (hDC == IntPtr.Zero) { throw new Win32Exception(); } try { Color backColor = BackColor; Color borderColor = _borderColor; Rectangle bounds = new Rectangle(0, 0, Width, Height); using (Graphics g = Graphics.FromHdc(hDC)) { using (Region region = new Region(bounds)) { region.Exclude(AbsoluteClientRectangle); using (Brush brush = new SolidBrush(backColor)) { g.FillRegion(brush, region); } } ControlPaint.DrawBorder( g, bounds, borderColor, ButtonBorderStyle.Solid); } } finally { NativeMethods.ReleaseDC(m.HWnd, hDC); } m.Result = IntPtr.Zero; }
本源码包内暂不包含可直接显示的源代码文件,请下载源码包。