透明的LISTVIEW
.NET就是封装的太密了,有时很多时候让我们反而更麻烦,特别是COPY不到的时候,又不懂自已想的话,说土一点就是死路一条, 记得以前经常用一句话,C++支持,可C#他不支持啊!就这样安慰自已 其实做多了就明白了,其实不是C#不支持,而是自已不懂,不会,程序里没有什么是不可能的,只是你没找到方法而已,语言只是外衣,内在是一样的, 就像JAVA配置环境变量一个道理,如果没碰过C#的人去碰下安装环境变量也会一直骂JAVA的开发环境,但有时自已动手安装那么一下,却能学到许多
不过.NET不提供设置背景,或者说没提供平铺拉伸的背景,就是一拉下拉框,图片就也跟着动了,没救了 本来很土的,一动我就刷背景,还是系统画,就算给他加了双缓冲,TNND还是有很明显的迟滞 我想做到这种效果 一句话:不就重画嘛! ? 当然这个图不好完全放出来,还是一个拙形!哈哈 而经过重画之后的效果就是下面这样喽 ?
下面就开始介绍重画 首先,这控件必须是透明的,而透明的前提是这个控件是自已重画 this.SetStyle(System.Windows.Forms.ControlStyles.UserPaint,true); 这几个属性的定义是一清二楚啊!也由此见,一个好的命名对一个程序来说,是多少重要啊!我们使用起来真的挺爽的,一目了然 开始重画喽 if (TopItem == null || ListViewImageList.Images.Count==0) } pevent.Graphics.DrawString(this.Items[TopItem.Index + i].Text,this.Font,Brushes.Black,30,i * 18 + 1);
但我们还是有办法的,下拉在WINDOWS里面的消息是:m.Msg == 0x114 || m.Msg == 0x115 这那里来的有点WIN API经验的人就知道了 在这里面捕抓一下,再用委托送出去,这时候一个好的命名又出现了,不明白的人还以为是.NET提供的,用得乱爽起来了,哈哈 protected override void WndProc(ref Message m) 在鼠标中健的滑动还有下拉移时就重画,很快的,就那二十项而已嘛! void DouBufferListview_OnScroll(object sender,bool vscroll) ? 其实是很简单的,最主要就是三方面 ? 这个是绝对原创的,自已也痛苦了几天,几乎放弃,在元旦的时候突然想到ONPAINTGROUND函数,特意加班试出来,免费的哦!嘿嘿!其实一直加班从没拿过加班费,看到别的同学加班都有,好不爽啊!但不爽归不爽,事情还是要做好的 其实大家都年轻,从这时候开始,渐渐明白,没有实现不了的东东,只有你不会做的东东,我只想专注于WINFORM,一切一切慢慢来 只身一人来到这里本来就是对自已的一次赌博,其实好想去完成那本科, 可惜,几个月前没这么想,把那一本院校的录取通知书扔在家里就跑了出来! 年轻就是冲动,但年轻也就是敢于付出!我相信自已 ? 改天再把那一组可爱的按钮放出来,想什么形状就什么形状的哦!很卡哇伊的哦! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |