dife是什么牌子:TextBox的技巧

来源:百度文库 编辑:中财网 时间:2024/04/29 09:53:53
49、已将 TextBox 的 Alignment 属性设为「1-靠右对」(1-RightJustify),但文字却未向右靠?
欲将 TextBox 内的文字向右靠,除了将 Alignment 属性设为「1-靠右对 」之外,亦 将 MultiLine 属性设为 True。
但是若您希望只有单行,不要多行,则必须判断 User 是否按了 Enter Key,那只好在 TextBox 的 KeyPress 中加入以下程序码,以去除 Enter 的作用:
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = vbKeyReturn Then
KeyAscii = 0
End If

50、在 TextBox 中如何限制只能输入数字?
参考下列程序:
Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii < 48 Or KeyAscii > 57 Then
KeyAscii = 0
End If
End Sub

51、我希望 TextBox 中能不接受某些特定字符,例如 ‘@#$%",有没有简单一点的写法?
方法有好几种, 以下列举二种:
方法1: 可以使用 IF 或 Select Case 一个个判断, 但如果不接受的字符多时, 较麻烦!
方法2: 将要剔除的字符统统放在一个字串中,只要一个 IF 判断即可 !! 如下:
Private Sub Text1_KeyPress(KeyAscii As Integer)
Dim sTemplate As String
sTemplate = "!@#$%^&*()_+-=" ‘用来存放不接受的字符
If InStr(1, sTemplate, Chr(KeyAscii)) > 0 Then
KeyAscii = 0
End If
End Sub

52、如何让鼠标进入 TextBox 时自动选定 TextBox 中之整串文字?
这个自动选定反白整串文字的动作,会使得输入的资料完全取代之前在 TextBox 中的所有字符。
Private Sub Text1_GotFocus()
Text1.SelStart = 0
Text1.SelLength = Len(Text1)
End Sub

53、如何让 TextBox 由 Insert 模式变成 Overwrite 模式?
Windows 的 TextBox 一直都只支援 Insert Mode,而不支援 OverStrike(OverWrite) Mode,其实,只要在 Key_Press 事件中加上几行指令,就可以做到 OverStrike 功能 !!
以下的程式码中,只设定 SelLength=1,而 SelStart 若未指定则会一直跟著滑鼠的游标所在处,设定 SelLength=1 会反白游标所在处的下一个字,但是由于您输入的字元会直接取代该反白的字元(都同时在 Key_Press 发生),所以您并不会看到字符被选定反白 (Marked),若是游标已在字串的最后面,则会直接忽略这个动作。
以下的程式码中同时也作了以下的错误判断及预防:
1. 当输入的是退格符,也就是 Backspace (character 8)。
2. 当输入的是 return 键 (character 13)。
3. 事先已作了选定动作 (Marked)。
Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii <> 8 And KeyAscii <> 13 And Text1.SelLength = 0 Then
Text1.SelLength = 1
End If
End Sub

54、如何使 TextBox 变成只读,卷动杆可卷动,但是不出现游标,也不可被选定反白?
在 Form 中放一个 TextBox,设定 Locked = True,MultiLine = True,ScrollBar = 2 - Vertical。另外再放一个 CommandButton (或其他任何可接受 Focus 的物件),此物件可由您自行作其他用途,否则
设定 Command1.left = -1000 将其移到 Form 的外面。
程式码如下:
Private Sub Text1_GotFocus()
‘马上将 Text1 的 focus 转移到 Command1 或其他物件上
Command1.SetFocus
End Sub

55、文字框可以设定快捷键吗?
不行,要设定快捷键的先决条件,是该物件必须有 Caption 属性,但是 TextBox (文字框) 只有 Text 属性,并无 Caption 属性,所以文字框本身是不能设定快捷键的!完全没办法吗?
但是还是有办法的!人家说山不转路转,文字框本身不能设定快捷键,一般我们在文字框的左方都会放置说明用的 Label,那我们就借用 Label 来做到这个功能,作法如下:
1、将文字框的 TabIndex 设成说明用的 Label 物件的下一个。
2、设定 Label 物件的快捷键,奇怪吗?Label 物件没有 Focus 好像不要快捷键!没错,我们就是要利用 Label 物件不要快捷键的特性来达到我们的要求!
当您输入了 Label 物件的快捷键,由于 Label 物件没有 Focus 不接受快捷键,于是它立刻将 Focus 送到下一个 TabIndex 的物件,也就是 TextBox 文字框了!