比较复杂的问题 关于字符串位的大小问题

leike1982 2006-01-19 05:37:40
button1.Text = "ab" ,button2.Text = "我"
请问怎么知道button1.Text = "ab" 的字符串有大呢?
注意:button1.Text.Length = 2,button2.Text.Length = 1

但是button1 和 button2 的Text属性占 button控件的宽度Width却是一样的(或者说显示出来我们看到所占的宽度是一样的)

如果button1.Text = "ab" ,button2.Text = "我你"
button1.Text.Length = 2 , button2.Text.Length = 2
注意:现在他们的Length 是一样的 button2.Text却要占用比button1.Text 2倍的Width

总结:数字和字母每个在英文里只占1位,汉字要占2位(或许是字节,不好意思 我有点混淆)

我的目的就是要得到button1.Text 和 button2.Text 的位 来比作一些判定

请高手指教一下 小弟弟十分感激

下面是我要需要这个的原因
我根据数据库的内容 动态的添加控件 包括控件的坐标,Width 等等
而用户只需要往数据库里添加一个Name就行了,剩下的属性都是根据这个Name来判定的
比如:Name=包间,X=200,Y=80,Width=48 默认的字段
用户新增加:Name=豪华包间,X=(200+48),Y=80,Width=48*2
(如果可以得到1个字符的宽等于多少,就能做出这样的公式,关键现在必须区别开汉字和字母数字间的大小),小弟非常感谢那位高手能帮帮 万分感谢
...全文
119 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
胖河马 2006-01-20
  • 打赏
  • 举报
回复
string s = "abcd啊啊";
System.Drawing.Font f = button1.Font;
System.Drawing.Graphics g = Graphics.FromHwnd(this.Handle);

int w = g.MeasureString(s, f).ToSize().Width;

button1.Text = s;
button1.Width = w + 20;
leike1982 2006-01-19
  • 打赏
  • 举报
回复
diandian82(点点) 先谢谢你 我试了一下你的代码

很大可能可以达到我的目的 呵呵

等我做完了 立即给分

如果还有那位高手有见解 请发表 谢谢
leike1982 2006-01-19
  • 打赏
  • 举报
回复
可能上面的问题 我提的太罗嗦了

简单点: 字符串 "a" 和 "我" 它们之间 比较怎么比较(允许转换成任何类型)
当然也可以是字符串"A" 和"a" 之间比大小 "A" 和"1", "a" 和"1"

我想说: 字母(不分大小写,如果必须分大写的话,那就分大写吧)或者数字(比如:"a1")
和汉字比较("我"),得到的结果是相等的,一个汉字占2位,一个字母或者数字占1位

请高手指教 怎么做这样的比较



diandian82 2006-01-19
  • 打赏
  • 举报
回复
这样返回的是总个数,可以实现你的要求
diandian82 2006-01-19
  • 打赏
  • 举报
回复
System.Text.Encoding.Default.GetByteCount( button1.Text ).ToString();
califord 2006-01-19
  • 打赏
  • 举报
回复
是这样的,英文大于中文的,大写小于小写,后面的字母比前面的大.如果你要安位来比较,那你先得将这些内容转成位,以下供你参考
函式 转换型态
Cbool Boolean
Cbyte Byte
Cchar Chart
CDate Date
CDbl Double
CDec Decimal
CInt Integer
CLng Long
CObj Object
CShort Short
CSng Single
CStr String
leike1982 2006-01-19
  • 打赏
  • 举报
回复
UP 高手啊高手 你在那里

111,120

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧