您的位置:程序门 -> .net技术 -> c#



字符串动态处理


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


字符串动态处理[已结贴,结贴人:huheng_0_0]
发表于:2007-01-13 10:21:56 楼主
比如我的ui上的一个标题栏,我用了一个label显示标题,form的size改变,当form的size能够完全显示这个label.text时,完全显示,当form的size小于label.text.length,即不能完全显示时,这个标题栏不能显示的部分用“...”代替,就像一个web   page在拖拉过程中,title的变化一样!
我本来实在form的resize事件中判断form.width   和字符串长度的关系,然后截取,加上“...”,但是效果不好,由于拖动的速度不一样,他不是渐变的过程,而是一个跳跃的过程,甚至出错。
请大家想想办法,能有什么办法,达到以上效果!   thx
发表于:2007-01-13 10:28:401楼 得分:15
...form的resize事件中判断form.width   和字符串长度的关系,然后截取,加上“...”...
代码后面加一句
application.doevents;
发表于:2007-01-13 10:33:102楼 得分:5
幫頂
发表于:2007-01-13 13:12:113楼 得分:30
就在resize事件里处理。没错。

问题应该出在你的处理算法上。

先把标题栏只显示一个字+…的时候窗体的width值找出来。
然后是二个字+…的时候窗体的width值;
然后是三个
4个
到你的标题能完全显示的长度。

这样就有了一个序列,一个一个判断下来,不至于会出bug的。
发表于:2007-01-13 16:50:164楼 得分:0
1.谢谢楼上几位的回答,doevents我还没来得及试,马上去公司试试
2.回答楼上的问题,我单步调试的时候,显示ok,符合我的的预期,但是如果直接运行,则会产生不连续的问题,我的理解是:a.如果是我的算法不好,那也只是字符串接取得不好   b.我得理解是,当resize在处理第一个的值或者某个值的时候,由于拖动的连续,它自动把其中的一些值给忽略处理了,现在出现的情况是,当我拉动快了,就发现不是出现 "... "代替不能显示部分,而是另外一个控件和这个text重合了.
发表于:2007-01-13 17:02:385楼 得分:0
学习ing...
发表于:2007-01-13 17:22:446楼 得分:0
谢谢,问题解决了,主要还是在于我的初始值和传入参数不对,谢谢whchina(江城老温)(分数缓慢提升,水平停滞不前)的提示,我try了一下,发现了问题在于我的传入参数不对,经过修改,已经ok了,同时也谢谢vovo2000(没人要的猫)!


快速检索

最新资讯
热门点击