找回密码
 加入
搜索
查看: 3585|回复: 12

[GUI管理] listview 当文本大于列宽时,如何把文本的最后部分显示完整 【已解决】

  [复制链接]
发表于 2015-3-29 15:46:00 | 显示全部楼层 |阅读模式
本帖最后由 fenhanxue 于 2015-3-29 17:00 编辑

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2015-3-29 16:12:15 | 显示全部楼层
_GUICtrlListView_SetColumnWidth
 楼主| 发表于 2015-3-29 16:16:58 | 显示全部楼层
本帖最后由 fenhanxue 于 2015-3-29 16:18 编辑

回复 2# netegg


宽度是固定的,在实际应用中,我想在这里列中,要多次添加文本,

比如,我第1次会添加:这是第1次添加的文本BALABALABALA

第2次会添加:这是第2次添加的文本BALABALABALA

第N次会添加:这是第n次添加的文本BALABALABALA

那么,这个文本,就会变成这样的形式:

这是第1次添加的文本BALABALABALA    &   这是第2次添加的文本BALABALABALA    &   。。。。。。  这是第N次添加的文本BALABALABALA

那么,想要上面的这一堆红色的文本,最新添加的文字,一定要显示全,之前添加的文本,就可以只显示部分
发表于 2015-3-29 16:24:15 | 显示全部楼层
本帖最后由 netegg 于 2015-3-29 16:26 编辑

_GUICtrlListView_SetColumnWidth($hListView, 2, StringLen( _GUICtrlListView_GetItemText($hListView, 1, 1))*16)
既然列宽是固定的,那么只能更改字体大小了
这和多少次添加没关系
发表于 2015-3-29 16:28:16 | 显示全部楼层
本帖最后由 netegg 于 2015-3-29 16:40 编辑

不过不考虑以前的话,就取出字符串要显示的部分,不就完了前后用...代替,
你是说前面的不管,只管后面的,如果是这样,那就
_GUICtrlListView_SetItemwidth($listview, $column, $num)
_GUICtrlListView_SetItemtext($listview, $index, '...' & stringright(_GUICtrlListView_getItemText($listview, $index, $iSubindex) & $tring, $num-3), $subindex)
 楼主| 发表于 2015-3-29 16:38:26 | 显示全部楼层
回复 4# netegg


这段字体我是打算用来记录程序的运行状态,所以会随着程序的运行,字符会不断的增加,到最后会成百上千,大致逻辑是这样的:
For  $i = 1 To 10000
        If need_record  Then;   need_record  当程序判断后,觉得需要进行记录
                Local $temp = _GUICtrlListView_GetItemText($hListView,$index)
                Local $temp_out = $temp & '这是第'&$i&"次记录,记录的内容为balabalabala"
                _GUICtrlListView_SetItemText($hListView,$index,$temp_out)
        EndIf
Next
发表于 2015-3-29 16:41:52 | 显示全部楼层
本帖最后由 netegg 于 2015-3-29 16:45 编辑

回复 6# fenhanxue
那你用错东西了,或者说你的逻辑本身有点瑕疵,原来的数据还要不要,如果不要,直接设置,取字符串定宽就行了,如果要,麻烦大了,10000个数据很容易内存接收不了,直接崩溃
 楼主| 发表于 2015-3-29 16:45:04 | 显示全部楼层
应该用什么?我打算有20行的listview的样子,每行相当于一个独立的程序,每行都对应一个独立的程序,进行独立的记录
发表于 2015-3-29 16:46:40 | 显示全部楼层
点击子项,取文本出来,用个文本框或者什么显示就行了
记录随便,但是别搞到这个里面
发表于 2015-3-29 16:49:07 | 显示全部楼层
而且,listview子项的字符元素印象里根本不支持16635以上的字符
 楼主| 发表于 2015-3-29 16:51:05 | 显示全部楼层
回复 9# netegg


    您的意思是,listview是不是不适合做记录?原因是什么?



我原本打算的记录方式是: $record_txt =  老记录  &  新记录
我想到的一个笨办法是:  $record_txt   =  新记录  &  老记录
发表于 2015-3-29 16:54:02 | 显示全部楼层
这两个没区别,是接收这个文本的要素,不允许那么多字符存在,如果真想做,用sqlite做,然后用listview显示,会自动截断
 楼主| 发表于 2015-3-29 17:00:02 | 显示全部楼层
回复 12# netegg


    感谢感谢~
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-16 16:54 , Processed in 0.078137 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表