★★Text(如TextBox.Txt)的Width如何获得?

cwjuan 2004-08-07 05:15:04
??
...全文
262 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
zcm123 2004-08-11
  • 打赏
  • 举报
回复
TextBox.Width
starsoulxp 2004-08-11
  • 打赏
  • 举报
回复
使用len函数
Len(Trim(Textbox1.Text)
northwolves 2004-08-08
  • 打赏
  • 举报
回复
TextWidth(Text1.Text)
longyongchao 2004-08-08
  • 打赏
  • 举报
回复
vb中。用len函数就可以得到width了.
len(trim(textbox.text)
rainstormmaster 2004-08-07
  • 打赏
  • 举报
回复
如果你求的是字串所占的字节数:
方法1:
Dim ss As String
ss = "hello中国"
Dim s As String
s = StrConv(ss, vbFromUnicode)
MsgBox "所求为:" + CStr(LenB(s))
方法2:
先添加下列声明:
Private Declare Function lstrlen Lib "kernel32" Alias "lstrlenA" (ByVal lpString As String) As Long
调用:
Dim ss As String
ss = "hello中国"
Dim i As Long
i = lstrlen(ss + Chr(0)) '请注意调用 lstrlen 时必须加上 Chr(0), 因为此一函数是根据 Chr(0) 来判断字串的结束
MsgBox "所求为:" + CStr(i)

如果你求的字串所占据的宽度,建议你这样做:
Option Explicit
Private Type Size
cx As Long
cy As Long
End Type
Private Declare Function GetTextExtentPoint32 Lib "gdi32" Alias "GetTextExtentPoint32A" (ByVal hdc As Long, ByVal lpsz As String, ByVal cbString As Long, lpSize As Size) As Long
Private Declare Function lstrlen Lib "kernel32" Alias "lstrlenA" (ByVal lpString As String) As Long
Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, ByVal hdc As Long) As Long

Private Sub Command1_Click()
Dim mHdc As Long, mSize As Size
mHdc = GetDC(Text1.hwnd)
Dim s As String
s = Text1.Text
Dim i As Long
i = lstrlen(s + Chr(0)) '请注意调用 lstrlen 时必须加上 Chr(0), 因为此一函数是根据 Chr(0) 来判断字串的结束
GetTextExtentPoint32 mHdc, s, i, mSize
MsgBox "所求字串宽度为:" + CStr(mSize.cx)
ReleaseDC Text1.hwnd, mHdc
End Sub


DiabloAbbot 2004-08-07
  • 打赏
  • 举报
回复
pigpag你这个是什么单位的啊?
好大。3个字540。

这个单位是Twip
15Twip=1Pixel
所以3个字是540/15=36像素
rainstormmaster 2004-08-07
  • 打赏
  • 举报
回复
//Me.TextWidth("大家好")
这个可以,不过调用时不要忘记要将窗体的字体属性临时改变为textbox的
benjamin8064 2004-08-07
  • 打赏
  • 举报
回复
lenb函数表示字符个数,一个中文字占2个字符,英文和标点符号占1个字符。
gdami 2004-08-07
  • 打赏
  • 举报
回复
pigpag你这个是什么单位的啊?
好大。3个字540。

lenb是表示个数吧。可能还要乘个字符的宽度。
pigpag 2004-08-07
  • 打赏
  • 举报
回复
Me.TextWidth("大家好")

这个?
benjamin8064 2004-08-07
  • 打赏
  • 举报
回复
lenb函数可以
用法和len函数一样。
cwjuan 2004-08-07
  • 打赏
  • 举报
回复
我要的是字符串的Width,不是个数。因为汉字+其他字符混在一起难计算。
cso 2004-08-07
  • 打赏
  • 举报
回复
TextBox.Width就是啊
代码如下 <%@ Page Language="VB" %> <script runat="server"> Class Ent Public Shared total, num1, num2 As String Public Shared sign As String Public Shared Sub click(ByVal a As String) total = total + a End Sub End Class Sub Count() Ent.num2 = TextBox1.Text Try Select Case Ent.sign Case "+" TextBox1.Text = CStr(CDbl(Ent.num1) + CDbl(Ent.num2)) Case "-" TextBox1.Text = CStr(CDbl(Ent.num1) - CDbl(Ent.num2)) Case "*" TextBox1.Text = CStr(CDbl(Ent.num1) * CDbl(Ent.num2)) Case "/" TextBox1.Text = CStr(CDbl(Ent.num1) / CDbl(Ent.num2)) End Select Catch ex As Exception Label1.Text = "同志请不要那数字以外的字符开计算器的玩笑!" TextBox1.Text = "0" Ent.total = "0" Ent.sign = "" End Try Ent.total = "" Ent.sign = "" End Sub Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Ent.click("1") TextBox1.Text = Ent.total Call CleanLabel() End Sub Protected Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Ent.click("2") TextBox1.Text = Ent.total Call CleanLabel() End Sub Protected Sub Button3_Click(ByVal sender As Object, ByVal e As System.EventArgs) Ent.click("3") TextBox1.Text = Ent.total Call CleanLabel() End Sub Protected Sub Button4_Click(ByVal sender As Object, ByVal e As System.EventArgs) Ent.click("4") TextBox1.Text = Ent.total Call CleanLabel() End Sub Protected Sub Button5_Click(ByVal sender As Object, ByVal e As System.EventArgs) Ent.click("5") TextBox1.Text = Ent.total Call CleanLabel() End Sub Protected Sub Button6_Click(ByVal sender As Object, ByVal e As System.EventArgs) Ent.click("6") TextBox1.Text = Ent.total Call CleanLabel() End Sub Protected Sub Button7_Click(ByVal sender As Object, ByVal e As System.EventArgs) Ent.click("7") TextBox1.Text = Ent.total Call CleanLabel() End Sub Protected Sub Button8_Click(ByVal sender As Object, ByVal e As System.EventArgs) Ent.click("8") TextBox1.Text = Ent.total Call CleanLabel() End Sub Protected Sub Button9_Click(ByVal sender As Object, ByVal e As System.EventArgs) Ent.click("9") TextBox1.Text = Ent.total Call CleanLabel() End Sub Protected Sub Button10_Click(ByVal sender As Object, ByVal e As System.EventArgs) If Len(Ent.total) > 0 Then Call CleanLabel() Ent.click("0") TextBox1.Text = Ent.total End If End Sub Protected Sub Button18_Click(ByVal sender As Object, ByVal e As System.EventArgs) Call CleanLabel() Ent.total = "" Ent.sign = "" TextBox1.Text = "0" End Sub Protected Sub Button11_Click(ByVal sender As Object, ByVal e As System.EventArgs) If Len(Ent.total) >= 0 Then If InStr(Ent.total, ".") = 0 Then Ent.click(".") TextBox1.Text = Ent.total End If End If Call CleanLabel() End Sub Protected Sub Button12_Click(ByVal sender As Object, ByVal e As System.EventArgs) If Len(Ent.sign) = 1 Then Call Count() Ent.num1 = TextBox1.Text Ent.sign = "+" Else Ent.num1 = TextBox1.Text TextBox1.Text = "0" Ent.total = "" Ent.sign = "+" End If End Sub Protected Sub Button16_Click(ByVal sender As Object, ByVal e As System.EventArgs) Call Count() End Sub Protected Sub Button13_Click(ByVal sender As Object, ByVal e As System.EventArgs) If Len(Ent.sign) = 1 Then Call Count() Ent.num1 = TextBox1.Text Ent.sign = "-" Else Ent.num1 = TextBox1.Text TextBox1.Text = "0" Ent.total = "" Ent.sign = "-" End If End Sub Protected Sub Button14_Click(ByVal sender As Object, ByVal e As System.EventArgs) If Len(Ent.sign) = 1 Then Call Count() Ent.num1 = TextBox1.Text Ent.sign = "*" Else Ent.num1 = TextBox1.Text TextBox1.Text = "0" Ent.total = "" Ent.sign = "*" End If End Sub Protected Sub Button15_Click(ByVal sender As Object, ByVal e As System.EventArgs) If Len(Ent.sign) = 1 Then Call Count() Ent.num1 = TextBox1.Text Ent.sign = "/" Else Ent.num1 = TextBox1.Text TextBox1.Text = "0" Ent.total = "" Ent.sign = "/" End If End Sub Protected Sub Button17_Click(ByVal sender As Object, ByVal e As System.EventArgs) TextBox1.Text = "0" Ent.total = "" Call CleanLabel() End Sub Protected Sub Button19_Click(ByVal sender As Object, ByVal e As System.EventArgs) If Len(TextBox1.Text) > 1 Then TextBox1.Text = Left(TextBox1.Text, (Len(TextBox1.Text) - 1)) Ent.total = TextBox1.Text Else : TextBox1.Text = "0" End If End Sub Protected Sub TextBox1_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Dim a As Double Try a = CDbl(TextBox1.Text) Call CleanLabel() Catch ex As Exception Label1.Text = "同志请不要那数字以外的字符开计算器的玩笑!" TextBox1.Text = "0" Ent.total = "0" Ent.sign = "" End Try End Sub Sub CleanLabel() Label1.Text = "" End Sub 计算器

计算器

 
TextBox ID="TextBox1" runat="server" BorderStyle="Solid" BorderWidth="1px" Width="180px" CausesValidation="True" OnTextChanged="TextBox1_TextChanged" ForeColor="Transparent">0TextBox>
Text="BackSpace" Width="72px" UseSubmitBehavior="False" /> Text="CE" OnClick="Button17_Click" Width="48px" UseSubmitBehavior="False" /> Text="C" OnClick="Button18_Click" Width="47px" UseSubmitBehavior="False" />
Text="7" OnClick="Button7_Click" Width="40px" UseSubmitBehavior="False" /> Text="8" OnClick="Button8_Click" Width="40px" UseSubmitBehavior="False" /> Text="9" OnClick="Button9_Click" Width="40px" UseSubmitBehavior="False" /> Text="/" OnClick="Button15_Click" Width="40px" UseSubmitBehavior="False" />
Text="4" OnClick="Button4_Click" Width="40px" UseSubmitBehavior="False" /> Text="5" OnClick="Button5_Click" Width="40px" UseSubmitBehavior="False" /> Text="6" OnClick="Button6_Click" Width="40px" UseSubmitBehavior="False" /> Text="*" OnClick="Button14_Click" Width="40px" UseSubmitBehavior="False" />
Text="1" OnClick="Button1_Click" Width="40px" UseSubmitBehavior="False" /> Text="2" OnClick="Button2_Click" Width="40px" UseSubmitBehavior="False" /> Text="3" OnClick="Button3_Click" Width="40px" UseSubmitBehavior="False" /> Text="-" OnClick="Button13_Click" Width="40px" UseSubmitBehavior="False" />
Text="0" OnClick="Button10_Click" Width="40px" UseSubmitBehavior="False" /> Text="." OnClick="Button11_Click" Width="40px" UseSubmitBehavior="False" /> Text="+" OnClick="Button12_Click" Width="40px" UseSubmitBehavior="False" /> Text="=" OnClick="Button16_Click" Width="40px" UseSubmitBehavior="False" />

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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