社区
VB
帖子详情
如何双击listbox的项时重新绘制listbox?
firechun
2003-08-29 06:35:53
listbox的drawmode设置为手工绘制,在每个列表项前加上图标,如何能做到双击列表项时,改变该项的图标?
doubleclick的事件参数是System.EventArgs,而DrawItem的事件参数是DrawItemEventArgs,不能用CType进行类的转换,怎样才能在双击事件中声明一个DrawItemEventArgs的类呢?
...全文
32
3
打赏
收藏
如何双击listbox的项时重新绘制listbox?
listbox的drawmode设置为手工绘制,在每个列表项前加上图标,如何能做到双击列表项时,改变该项的图标? doubleclick的事件参数是System.EventArgs,而DrawItem的事件参数是DrawItemEventArgs,不能用CType进行类的转换,怎样才能在双击事件中声明一个DrawItemEventArgs的类呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
firechun
2003-08-30
打赏
举报
回复
谢谢,调用refresh可以解决我现在的问题,因为双击后我要重绘整个listbox(listbox的内容完全改变)。不过如果我要重绘某一项的话(listbox的内容没有改变,只改变双击项的图标),还需要加些代码才行,我对DrawItem事件的触发还不是完全明白,在DrawItem中我写了如下代码
if isDblClick then 'isDblClick在DoubleClick事件中设置为True
newIcon=new Icon("icon1.ico")
isDblClick=False
else
newIcon=new Icon("icon2.ico")
end If
双击后,可以看见双击的那一项的图标变成icon1,然后又变回icon2,不能固定成icon1。我注释掉isDblClick=False这句,则所有项的图标都变成icon1,请问这里应该如何处理?
canyqf
2003-08-30
打赏
举报
回复
isDblClick 什么时候设为False的?
你什么时候要让这一项的icon变回icon1就什么时候设为False...
canyqf
2003-08-29
打赏
举报
回复
doubleclick事件中调用refresh方法强制更新
绘制
listbox
绘制
listbox
ListBox
内建滚动条的
绘制
内建滚动条的自绘一直是程序员最头疼的问题,有人使用HOOK API方法麻烦,有人使用其他的窗口模拟滚动条总让人心里有不爽的感觉。我没有采用上述的两种方法,另辟蹊径,完美隐藏了系统的滚动条并
绘制
出自己的稳定滚动条。
ListBox
的一些特殊用法
在Delphi中,主要通过Canvas画布对象进行绘图,Delphi可以在窗体或组件上
绘制
出各式各样的图像,通过Canvas的属性将一些图形变为文字,或是将一些文字变为图形;这里我主要是通过Canvas属性来美化列表框
ListBox
中的列表项: 首先要将
ListBox
的Style属性设为lbownerDrawFixed,然后再
ListBox
的OnDrawItem事件上书写代码如下: procedure TForm1.
ListBox
1DrawItem(Control: TWinControl; Index: Integer;Rect: TRect; State: TOwnerDrawState);beginwith Control as T
ListBox
dobegin Canvas.FrameRect(Clientrect); if odSelected in State then begin Canvas.Brush.Color:=clRed; Canvas.RoundRect(Rect.Left,Rect.Top,Rect.Right,Rect.Bottom,8,15); //前面四个参数分别是左上顶角和右下顶点坐标,构成一个矩形区域,后面两参数是来设置四个顶角端的小三角大小,为了美观可自行设定 setBkMode(Canvas.Handle,TRANSPARENT );//这个在前面文章中有介绍,是设置透明背景 Canvas.TextOut((Rect.right-Rect.Left) div 2,Rect.Top,Items.Strings[Index]); end else begin Canvas.Brush.Color:=clSkyBlue;//这里为了列表项和
ListBox
背景色一致,最好就都设成一样颜色 Canvas.RoundRect(Rect.Left,Rect.Top,Rect.Right,Rect.Bottom,15,15); Canvas.TextRect(Rect,Rect.Left,Rect.Top,Items.Strings[Index]); end;end;end;
C# GDI画的存放大数据的
ListBox
自定义控件
C#写的 在Winform中有时想存很多个数据 但VS本身并没有可以存很多条数据的控件,所以自己写了一个用GDI画的
ListBox
控件,用来存很多条数据蛮好用的。
multiline_
listbox
.rar
vs2010
listbox
多行颜色区分 自
绘制
VB
16,556
社区成员
110,528
社区内容
发帖
与我相关
我的任务
VB
VB技术相关讨论,主要为经典vb,即VB6.0
复制链接
扫一扫
分享
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章