介绍怎样扩展ListView控件

介绍怎样扩展ListView控件

ID:38596525

大小:41.00 KB

页数:5页

时间:2019-06-15

介绍怎样扩展ListView控件_第1页
介绍怎样扩展ListView控件_第2页
介绍怎样扩展ListView控件_第3页
介绍怎样扩展ListView控件_第4页
介绍怎样扩展ListView控件_第5页
资源描述:

《介绍怎样扩展ListView控件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、介绍怎样扩展ListView控件,使他也具有这样的功能,而且重绘他的Header,使其更美观。在这篇文章中,我只对View为Details的时候进行了重绘,至于其他的Ttile,List,SmallIcon,LargeIcon,大家可以照着代码自己实现。这个控件的美化大致跟ListBox的差不了多少,我们还是一步一步的来实现它吧:1、 继承ListView,并把OwnerDraw设为True,如下:publicListViewEx():base(){base.OwnerDraw=true;}2、 给继承的控件添加4个属性:RowBackColor1,RowBa

2、ckColor2,SelectedColor,HeadColor这三个颜色分别是数据项的交替的背景色、数据项选择后的背景色和列表头的背景颜色。3、 重绘Header,通过重写OnDrawColumnHeader函数来实现。protectedoverridevoidOnDrawColumnHeader(DrawListViewColumnHeaderEventArgse){base.OnDrawColumnHeader(e); Graphicsg=e.Graphics;Rectanglebounds=e.Bounds; ColorbaseColor=_headC

3、olor;ColorborderColor=_headColor;ColorinnerBorderColor=Color.FromArgb(200,255,255); RenderBackgroundInternal(g,bounds,baseColor,borderColor,innerBorderColor,0.35f,true,LinearGradientMode.Vertical); TextFormatFlagsflags=GetFormatFlags(e.Header.TextAlign);RectangletextRect=newRectangl

4、e(bounds.X+3,bounds.Y,bounds.Width-6,bounds.Height);; if(e.Header.ImageList!=null){Imageimage=e.Header.ImageIndex==-1?null:e.Header.ImageList.Images[e.Header.ImageIndex];if(image!=null){RectangleimageRect=newRectangle(bounds.X+3,bounds.Y+2,bounds.Height-4,bounds.Height-4);g.Interpol

5、ationMode=InterpolationMode.HighQualityBilinear;g.DrawImage(image,imageRect); textRect.X=imageRect.Right+3;textRect.Width-=imageRect.Width;}}TextRenderer.DrawText(g,e.Header.Text,e.Font,textRect,e.ForeColor,flags);}4、 重绘Item,通过重写OnDrawItem,OnDrawSubItem来实现,这里我只对Details这种显示模式进行了重写。pr

6、otectedoverridevoidOnDrawItem(DrawListViewItemEventArgse){base.OnDrawItem(e);if(View!=View.Details){e.DrawDefault=true;}} protectedoverridevoidOnDrawSubItem(DrawListViewSubItemEventArgse){base.OnDrawSubItem(e);if(View!=View.Details){return;}if(e.ItemIndex==-1){return;}Rectanglebound

7、s=e.Bounds;ListViewItemStatesitemState=e.ItemState;Graphicsg=e.Graphics;if((itemState&ListViewItemStates.Selected)==ListViewItemStates.Selected){bounds.Height--;ColorbaseColor=_selectedColor;ColorborderColor=_selectedColor;ColorinnerBorderColor=Color.FromArgb(200,255,255); RenderBac

8、kgroundInternal(g,b

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。