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 中能不接受某些特定字符,例如 ‘@#$%",有沒(méi)有簡(jiǎn)單一點(diǎn)的寫(xiě)法?
方法有好幾種, 以下列舉二種:
方法1: 可以使用 IF 或 Select Case 一個(gè)個(gè)判斷, 但如果不接受的字符多時(shí), 較麻煩!
方法2: 將要剔除的字符統統放在一個(gè)字串中,只要一個(gè) IF 判斷即可 !! 如下:
Private Sub Text1_KeyPress(KeyAscii As Integer)
Dim sTemplate As String
sTemplate = "!@#$%^&*()_+-=" ‘用來(lái)存放不接受的字符
If InStr(1, sTemplate, Chr(KeyAscii)) > 0 Then
KeyAscii = 0
End If
End Sub
52、如何讓鼠標進(jìn)入 TextBox 時(shí)自動(dòng)選定 TextBox 中之整串文字?
這個(gè)自動(dòng)選定反白整串文字的動(dòng)作,會(huì )使得輸入的資料完全取代之前在 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,其實(shí),只要在 Key_Press 事件中加上幾行指令,就可以做到 OverStrike 功能 !!
以下的程式碼中,只設定 SelLength=1,而 SelStart 若未指定則會(huì )一直跟著(zhù)滑鼠的游標所在處,設定 SelLength=1 會(huì )反白游標所在處的下一個(gè)字,但是由于您輸入的字元會(huì )直接取代該反白的字元(都同時(shí)在 Key_Press 發(fā)生),所以您并不會(huì )看到字符被選定反白 (Marked),若是游標已在字串的最后面,則會(huì )直接忽略這個(gè)動(dòng)作。
以下的程式碼中同時(shí)也作了以下的錯誤判斷及預防:
1. 當輸入的是退格符,也就是 Backspace (character 8)。
2. 當輸入的是 return 鍵 (character 13)。
3. 事先已作了選定動(dòng)作 (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 變成只讀,卷動(dòng)桿可卷動(dòng),但是不出現游標,也不可被選定反白?
在 Form 中放一個(gè) TextBox,設定 Locked = True,MultiLine = True,ScrollBar = 2 - Vertical。另外再放一個(gè) CommandButton (或其他任何可接受 Focus 的物件),此物件可由您自行作其他用途,否則
設定 Command1.left = -1000 將其移到 Form 的外面。
程式碼如下:
Private Sub Text1_GotFocus()
‘馬上將 Text1 的 focus 轉移到 Command1 或其他物件上
Command1.SetFocus
End Sub
55、文字框可以設定快捷鍵嗎?
不行,要設定快捷鍵的先決條件,是該物件必須有 Caption 屬性,但是 TextBox (文字框) 只有 Text 屬性,并無(wú) Caption 屬性,所以文字框本身是不能設定快捷鍵的!完全沒(méi)辦法嗎?
但是還是有辦法的!人家說(shuō)山不轉路轉,文字框本身不能設定快捷鍵,一般我們在文字框的左方都會(huì )放置說(shuō)明用的 Label,那我們就借用 Label 來(lái)做到這個(gè)功能,作法如下:
1、將文字框的 TabIndex 設成說(shuō)明用的 Label 物件的下一個(gè)。
2、設定 Label 物件的快捷鍵,奇怪嗎?Label 物件沒(méi)有 Focus 好像不要快捷鍵!沒(méi)錯,我們就是要利用 Label 物件不要快捷鍵的特性來(lái)達到我們的要求!
當您輸入了 Label 物件的快捷鍵,由于 Label 物件沒(méi)有 Focus 不接受快捷鍵,于是它立刻將 Focus 送到下一個(gè) TabIndex 的物件,也就是 TextBox 文字框了!
聯(lián)系客服