Label控件思想汇报有字数限制吗吗,如果有,是多少

以前一直做web开发,基本上是加&br/&或者css控制word-break:break-word-wrap:break-Windows中Label控件是把Label的AutoSize属性设为False,这样就可以拖放了。记录一下。WinForm很多朋友都会在开发WinForm中遇到Label要显示的内容太长,但却不能换行的问题.这里我总结了几种方法,供大家参考:&&&&&&& 第一种是把Label的AutoSize属性设为False,手动修改Label的大小.这样的好处是会因内容的长度而自动换行,但是当内容的长度超过所设定的大小时,多出的内容就会无法显示.因此,这种方法适合于基本确定内容长度的时候使用.&&&&&&& 第二种是把Label的Dock设为FILL,同时将AutoSize属性设为False,这种方法可将上面所说的缺点修正,但是同时Label会将其它 控件的位置霸占,影响布局.因此,在使用该方法时,最好给Label加上个Panel或GroupBox控件.&&&&&&& 第三种是通过判断内容的长度,动态设置Label的大小.具体程序如下(Label控件取名为Label1,显示内容的字符串为str):&&&&&&& int LblNum = str.L&& //Label内容长度&&&&&&&&int RowNum = 10;&&&&&&&&&& //每行显示的字数&&&&&&&&float FontWidth = label1.Width / label1.Text.L&&& //每个字符的宽度&&&&&&&&int RowHeight=15;&&&&&&&&&& //每行的高度&&&&&&&&int ColNum = (LblNum - (LblNum / RowNum) * RowNum) == 0 ? (LblNum / RowNum) : (LblNum / RowNum) + 1;&& //列数&&&&&&&&label1.AutoSize =&&& //设置AutoSize&&&&&&&&label1.Width = (int)(FontWidth * 10.0);&&&&&&&&&&//设置显示宽度&&&&&&&&label1.Height = RowHeight * ColN&&&&&&&&&& //设置显示高度&&&&&&& 通过这种方法可以令Label每行所显示的字数得到控制,同时也动态的生成的所对应的行数,这对于排版有很大的好处,但是如果显示内容过多,该方法也会令 多出来的内容无法显示.因此,对于显示内容过长的时候,可以在外层加上Panel或GroupBox,设置AutoScroll为true,这样就不会因 为太长而导致Label高度扩大而影响其它控件的布局,同时也可以更好地显示完整的内容。WebForm最在做C#项目中有一个Label在数据库中获得数据,然而由于这个字段是一段很长的text值,在页面显示出很长的文字,页面变形,影响了页面的美观你可以将lable放在一个已经设置固定大小的表格中,然在程序代码html:&asp:label id="lblPosition"&style="word-break:break-word-wrap:break-word" runat="server"&&/asp:Label&请注意:&&对于没有数字的内容,下面这行完全满足要求,但加了数字就不行,就不行了。 &&& style="word-break:keep-word-wrap:normal";&&&&&有数字或者字母的用下面的: &&& style="word-break:break-word-wrap:break-word"; &或Label.Text & = & str.Replace( "\r\n ", " &br/& ");url:&关于换行:label1.Text = "你好" + Environment.NewLine + "大气象";WinForm今天碰到一段string在label中能正常换行,但是在textbox中却无法换行的问题。首先考虑是换行符的问题。在网上查了些资料:1、TextBox 中换行符为: "\r\n"。2、Windows 中的换行符(即:Environment.NewLine) 为 "\r\n"3、MessageBox.Show() 的换行符为 "\n"4、Console 的换行符为 "\n"5、换行符还因平台而已,Unix/Linux 平台换行符是 "\n"。6、为保持平台的通用性,最好用 Environment.NewLine。&&由于我用的是vb.net,语法与c#不同,有如下对应关系:&&&&&&&&&&&&&&&&&&&&&&&&&&& C#&& & & && VB.NET&&&&&&&&&&& VB.NET中的另一种表示方法&&&&&&&&&&&& 换行符 & & & \n&&&&&&&&&&&& vbLf&&&&&&&&&&&&&&&&&&&& Chr(10)&&&&&&&&&&&& 回车符&&&&&& \r&&&&&&&&&&&&& vbCr&&&&&&&&&&&&&&&&& & Chr(13)回车符+ 换行符&&&&&&& \r\n&&&&&&&&& vbCrLf&&&&&&&&&&& Chr(13) + Chr(10)&经测试, windows下:1 如果只有换行符或只有回车符,label中能显示换行,而textbox则不行2 如果同时有换行符和回车符,label和textbox都能正常换行&&这个2个结果在C#及VB.NET中都是一样的&附,如果只有换行符或只有回车符,用正则表达式做替换的方法:首先引入命名空间&Imports&System.Text.RegularExpressions&&然后Dim&sNew&As&String&=&Regex.Replace(sOld,&vbCrLf&+&"|"&+&vbCr&+&"|"&+&vbLf,&vbCrLf)& & & &很多朋友都会在开发WinForm中遇到Label要显示的内容太长,但却不能换行的问题.这里我总结了几种方法,供大家参考:&&&&&&& 第一种是把Label的AutoSize属性设为False,手动修改Label的大小.这样的好处是会因内容的长度而自动换行,但是当内容的长度超过所设定的大小时,多出的内容就会无法显示.因此,这种方法适合于基本确定内容长度的时候使用.&&&&&&& 第二种是把Label的Dock设为FILL,同时将AutoSize属性设为False,这种方法可将上面所说的缺点修正,但是同时Label会将其它控件的位置霸占,影响布局.因此,在使用该方法时,最好给Label加上个Panel或GroupBox控件.&&&&&&& 第三种是通过判断内容的长度,动态设置Label的大小.具体程序如下(Label控件取名为Label1,显示内容的字符串为str):&&&&&&& int LblNum = str.L&& //Label内容长度&&&&&&&&int RowNum = 10;&&&&&&&&&& //每行显示的字数&&&&&&&&float FontWidth = label1.Width / label1.Text.L&&& //每个字符的宽度&&&&&&&&int RowHeight=15;&&&&&&&&&& //每行的高度&&&&&&&&int ColNum = (LblNum - (LblNum / RowNum) * RowNum) == 0 ? (LblNum / RowNum) : (LblNum / RowNum) + 1;&& //列数&&&&&&&&label1.AutoSize =&&& //设置AutoSize&&&&&&&&label1.Width = (int)(FontWidth * 10.0);&&&&&&&&&&//设置显示宽度&&&&&&&&label1.Height = RowHeight * ColN&&&&&&&&&& //设置显示高度&&&&&&& 通过这种方法可以令Label每行所显示的字数得到控制,同时也动态的生成的所对应的行数,这对于排版有很大的好处,但是如果显示内容过多,该方法也会令多出来的内容无法显示.因此,对于显示内容过长的时候,可以在外层加上Panel或GroupBox,设WebForm解决方法:1.手动换行:在换行的位置加&br/&就行了2.指定长度换行+ 不破坏单词:(1)设置label宽度 width=100px&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& (2)设置label style="WORD-WRAP: break-word"
阅读(...) 评论()【图片】【求帮助解疑】关于JLabel实时更新JTextField中的输入字数遇挫【java吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:703,669贴子:
【求帮助解疑】关于JLabel实时更新JTextField中的输入字数遇挫收藏
JLabel counter ——字体颜色红色JTextField input1界面是这样:我自己写的TextListener:结果不管怎么输入,counter永远是 0是哪里有错吗? 求指教
如果把JLabel换成另一个文本框或者文本域然后把length()值传过去能显示,但是这里我就只想做成JLabel的。。。。。。QAQ
以为是没加到actionPerformed中的原因。。。。结果actionPerformed加进去这段if语句也还是照样没响应。。。。
在线等啊.......QAQ
冒昧@一下平时常见的有印象的大神。。。。。
因为真是在写的时候遇到这个 现在只能在线等解决了才能继续写程序。。。
先谢谢了QAQ
而且这句怎么都加不上去
一加就报错
不用show()。 把你if(){
这块代码放在new Runnable()中试试 }
很遗憾 TextListener 是 AWT 控件时代的老古董了在 Swing 中,已经用 DocumentListener 了input1.getDocument().addDocumentListener(...);
这个已经发现了。但是我在DocumentListener又遇到了问题。。。QAQ
再次请教司马。。。。
这学期才学的JAVA
实在只能改成这个样子了。。。但是还是没效果
我就只改了这个方法...其他地方都没有动
线程部分老师根本就没讲 我只自己简单看了一下
不知道改对了没有。。。。
我这样改反正还是没效。。QAQ
楼主那句话到底执行了没,你有没有添加个弹出窗口或者print一下测试信息
输出的是文本框中文字+长度
就只差JLabel显示刷新了。。。所以线程部分我还空着的。。。加不上counter.setText()
这是加上setText() 语句
242就是 Main.this......那行256是public void changedUpdate(DocumentEvent e) {changeFilter(e);}
方法中的changeFilter(e);这句
有初始化啊。。。。。QAQ
结贴。监听正确声明counter出了问题
我写的 JLabel counter = new JLabel..去掉JLabel就实现了感谢
登录百度帐号注册 | 登录
想搞个大新闻的交互设计师
从零开始学运营,10年经验运营总监亲授,2天线下集训+1年在线学习,做个有竞争力的运营人。
输入框虽然看上去简单,但需要考虑的细节也不少,本文将向你介绍输入框的相关组成部分和注意事项。
Text fields(输入框/文本框)是一个历史悠久而经典的控件,当光标位于输入框时,用户可以在其中输入或复制粘贴文本、数字等内容。输入框虽然看上去简单,但需要考虑的细节也不少,本文将向你介绍输入框的相关组成部分和注意事项。
Text fields的相关组成部分
标题 / 输入框标签(Label)
Label是一个控件或一组相关控件的名称或标题,与Text field成对出现时表示输入框的标题或者内容,对于常见的主题有时也用图标代替Label。在表单中为了标明输入框是必填的,通常在Label旁边添加一个星号“*”。
文字Label、图标Label、带星号的Label
Label与Text fields的对齐方式
Label和Text fields的排版对用户浏览和使用有很大影响,一般来说可以把Label与Text fields对齐方式划分为4种。
Label和Text field垂直左对齐排列,用户只需依次向下浏览,因此浏览和填写的效率是4个对齐方式中最好的,而且占用屏幕横向空间少,即使Label特别长也能很好的显示(这对支持多国语言的软件特别有用,因为有些语言比英文还要长很多)。但这种对齐方式会占用过多的屏幕高度,此外应当注意每组Label和Text field与其他组的间距,以免密密麻麻降低可读性。
水平右对齐
Label和Text field水平显示,Label右对齐。占用的屏幕高度减小,但是由于Label长短不一时显得层次不齐,因此用户浏览效率会比垂直顶端对齐低。
水平右对齐
水平左对齐
这种对齐方式利于用户浏览Label,但是Label和Text field的距离较远,用户从左往右浏览的时间会变得更长。可将某些短Label通过增加字符间距的方式使之更易读。当然,时间长也不是坏事,对于有陌生数据和需要谨慎填写内容反倒是能让用户减少出错的可能。
水平左对齐
Text field内嵌Label是最节省空间的做法,为了让Label和真正输入的内容做区分通常会把Label颜色调淡并且在最后加“…”,实际上是把Placeholder text当做Label。内嵌Label浏览效率上和顶端对齐不相上下,但是一旦用户在Text field输入内容后,Label就看不到了,因此只适合Label特别短或者搜索框、账号密码输入框等用户非常熟知的情况。
Float Label(浮动标签)
设计师Matt D Smith在内嵌Label的基础上发明了一种新颖的交互模式Float Label(
):当用户在Text field中输入内容以后,内嵌Label会浮动到Text field上方,成为顶端对齐。这种方式兼具内嵌Label和顶端对齐的优点,目前已经成为Material Design里Text field默认风格。
Float Label
这种模式也有缺点,Label显示过小,对于小屏幕和视力不佳的用户来说不是个好方案。此外,Label侵占了原本Placeholder text的空间,对于一些用户陌生的Text field来说需要额外的空间放提示和说明。
占位符文本/提示语(Placeholder text / Hint text)
Placeholder text是Text field没有内容时出现的灰色文字,当用户输入内容后将会消失,因此只能展示一些比较简短的信息。通常使用Placeholder text作为输入指引(例如:“请点击输入评论”)或者表明输入的限制和示例(例如:“年/月/日”)。很多电商产品搜索框会把Placeholder text用于热门商品促销。
淘宝App的搜索框Placeholder text
iOS有一个特性,在软键盘上方显示Placeholder text,这样即使在输入过程中也能提示用户正确的规则,且输入过程中用户视线停留在软键盘上不用转移。
在键盘上方显示Placeholder text
辅助说明/额外说明/帮助文字( Helper text)
如果Text field的输入规则或者注意事项比较复杂,建议在Text field附近(一般是下面)添加Helper text进行额外说明。Helper text也可以用Tooltips或者Popover的形式来呈现。
MailChimp给密码输入框的Helper text加入了互动:输入框的复杂规则拆分成多个简单的条件,每当用户输入的内容满足一个条件,会给予相应的反馈,告知用户已满足这个条件,这样就把复杂的任务拆分得简单,用户输入不易出错。
初始默认值(Default value)
输入框内默认预留的字符,获取焦点后不消失,用户可以删除或者修改这些字符。好的初始默认值能减少用户的输入负担。例如地图App路线导航功能的起点输入框Default value是用户的当前位置,用户只需输入目的地即可开始导航,提高了效率。
起点Default value是用户当前位置
文本类型多种多样、长短不一,但是计算机能接受的文本是有限的,业务方通常对文本类型也有要求。例如手机号码肯定是数字,如果输入其他内容会报错。为了减少用户出错的可能性,维护计算机系统安全稳定,必须对Text field进行一些输入限制,例如最短最常能输入多少个字符;是否能输入emoj表情符号等特殊字符;前后的空格是否过滤;能否支持从剪贴板粘贴等等。
此外要考虑如果用户的输入超出限制或出错,应当如何给予用户合适的反馈,帮助用户将内容修改正确。
自动获取焦点(Autofocus)
当用户点击Text field,光标出现弹出软键盘,表示该Text field已获取焦点,此时用户就能输入或者修改内容了。对于主要任务就是填写表单的页面,可以在用户进入该页面后,自动获取焦点。如果页面有多个Text field,当用户填写完一个后,自动获取下一个的焦点,这样操作会更流畅。
Text field的主流输入方式是键盘,使用适当的软键盘布局有助于用户提高输入效率,降低出错的可能性。关于软键盘布局等特性。
除键盘外,合理运用其他输入方式能提升输入效率。例如语音输入、GPS定位、拍照识别文字、文字自动联想、与其他输入类控件配合等。
淘宝App的Text field提供了非常丰富的输入方式
字数限制展示
对于需要字数限制的Text field,目前有2种字数限制展示风格:
「当前已经输入的字数/字的最大长度」
一直显示「当前已经输入的字数」,达到最大字数限制后会提示超出长度。
这两种方式给用户带来的感受是不一样的,例如发微博和回复微博的Text area(文本区域/多行文本输入区)字数限制提示由原来「当前已经输入的字数/140字」,改为「输入130字以后显示剩余可输入的字符数量」,这样做的好处是用户不会在刚开始输入时因为看到字数限制而刻意控制输入字数打断心流造成情绪不畅或者降低输入动机,也许能提高发微博和评论的活跃 。
微博改版前后
快速清除按钮(Clear button)
对于手机软键盘来说,连续多次点击delete键删除多个字符比物理键盘体验要差得多,因此对于有修改内容需求的Text field可在右侧放一个Clear button,点击即可一键清空Text field中的所有内容。
Clear button出现时机有4种:1)获取焦点时才出现。2)有内容时就出现,即使没有获取焦点。这种适合搜索框,点击Clear button后清空内容再自动获取焦点,一气呵成,直接进行下次搜索。3)一直出现。4)没有明显的Clear button,但是按一次软键盘的delete键直接清空所有内容。通常密码输入框出错后会用这种。
密码输入框和可见性切换图标
在PC时代,电脑屏幕比较大,如果密码直接明文显示,容易被旁观者偷窥窃取,因此用星号“*”或“o”隐藏真实的密码。移动时代密码输入框也密文显示就值得斟酌了,首先手机屏幕比较小,不易被旁观窃取。其次不法分子观察软键盘按键顺序就可以窃取密码,不需要去看密码输入框。
另外密文显示给用户输入和检查带来很大麻烦。国外有数据显示,采用密码默认明文显示,通过可见性图标(Invisibility icon/Visibility icon)切换明文/密文,能明显提高转化率,而且不会降低安全性。(详细请阅读: )
多行输入框的最大行高
根据Text field可以输入的行数,可分为单行文本框(Single-line text field)和多行文本框(Multi-line text field),由于手机的屏幕比较小,建议给多行文本框限制一个最大行高,如果达到最大行高,输入框内的文本可通过滚动条滑动。为了方便拇指滚动,建议最大行高大于5行。
多行输入框的最大行高
作者:龙爪槐守望者,微信公众号:龙爪槐守望者
本文由 @龙爪槐守望者 原创发布于人人都是产品经理。未经许可,禁止转载。
题图来自PEXELS,基于CC0协议
赞赏是对原创者的最大认可
赞赏4人打赏
收藏已收藏 | 34赞已赞 | 7
想搞个大新闻的交互设计师
产品经理群
运营交流群
数据分析群
文案交流群
Axure交流群
关注微信公众号
大家都在问
6个回答8人关注
14个回答20人关注
12个回答11人关注
17个回答63人关注
15个回答23人关注
21个回答72人关注VB中怎样限定text输入框中输入的字数_百度知道
VB中怎样限定text输入框中输入的字数
编写一小段程序,要求在text5中只能输入的字符在160以内。而且已经输入的字符数要计算出来并显示在n/160中。超过160的不显示,并提示“已到最大字符数”请各位大哥帮帮忙。不胜感激!!
我有更好的答案
VB中限定text输入框中输入的字数,有两种方法可以实现:1、直接在text文本框属性中定义MaxLength的值,MaxLength是设置文本框允许输入的字符最大数。超过设置数后,将不允许继续输入内容。2、代码实现:Private Sub Text1_Change()
If Len(Text1) &= 160 Then MsgBox &你已经输入了160个字,已到最大字符数!&End Sub
Private Sub Text5_Change()
If Len(Text5.Text) & 160 Then
Text5.Text = Left(Text5.Text,160)
MsgBox &已到最大字符数&
Label1.Caption = Len(Text5.Text) & &/160&End Sub 直接加到你的代码框里就可以限制Text5里的字数了,超出的就删了,到了也会有提示,在label1里也会显示n/160,由于你没告诉我你用哪个控件显示n/160,我用的是label1,你可以自己改
本回答被提问者采纳
Sub&s()&&&&Text1.MaxLength&=&8'设置Text输入最长为8个字符End&Sub
Inputmask属性设置160能解决你的问题,不用写代码来控制
Private Sub Form_Load()Text1.MaxLength = 160End SubPrivate Sub Text1_Change()Label1.Caption = Text1.MaxLength - Len(Text1.Text) & &/160&If Len(Text1) = 160 ThenLabel1.Caption = &已到最大字符数&End IfEnd Sub
其他2条回答
为您推荐:
其他类似问题
输入框的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。C#怎么限制label每行的字数_百度知道
C#怎么限制label每行的字数
比如用一长串感叹号,label显示时,只要到了窗体边缘就换行
我有更好的答案
你是winform中的吗label将autosize属性设置为false&,然后固定大小,为自动换行&或者你在赋值的时候,加换行符就可以换行
采纳率:25%
你给label设置个长度,后台load里加上这句话,到你给的长度就换行
lblRemark.Style.Add(&word-break&, &break-all&);
winform下,设置label的AutoSize为false,label就可以自动换行.如果一定要窗体边缘,可以设置label的anchor属性,右侧边缘为Anchor Right就行
也可以让窗体自适应lable方法是将form的属性AutoSize改为True。然后在窗体Form中添加如下代码public Form1()
InitializeComponent();
System.Drawing.Size s = label1.GetPreferredSize(label1.Size); //主要是这两句
label1.Size =//主要是这两句
用转义字符\n就好,如在 C#怎么限制label每行的\n字数,将在‘字数’时转至下一行。
其他2条回答
为您推荐:
其他类似问题
您可能关注的内容
label的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 经营范围有字数限制吗 的文章

 

随机推荐