Board logo

標題: 為何Textbox的Setfocus無法發揮功能呢? [打印本頁]

作者: dechiuan999    時間: 2010-8-6 06:48     標題: 為何Textbox的Setfocus無法發揮功能呢?

各位大大好:

    小弟常常使用表單操作,
但一直會遇到要使表單上的
textbox能在一開啟表單時
能將駐點停在Textbox上,
為何使用Textbox的Setfocus
卻會無法發揮其功能呢?

感謝各位大大!
作者: GBKEE    時間: 2010-8-6 07:03

回復 1# dechiuan999
試試看
修正你的Userform1程式碼如下
  1. Private Sub CommandButton1_Click()
  2.     TextBox1.SetFocus
  3. End Sub
  4. Private Sub CommandButton2_Click()
  5.     Unload Me
  6. End Sub
  7. Private Sub TextBox1_Change()
  8.     TextBox1.Text = UCase(TextBox1.Text)
  9.     'TextBox1.SetFocus
  10. End Sub
  11. Private Sub UserForm_Initialize()
  12.     '此程式發生在一個物件載入後,但尚未顯示的時候。
  13.     '您可將變數指定為起始值,且控制項可以移動或改變大小來配合初始資料。
  14.     'Userform1.TextBox1.Text = UCase(TextBox1.Text)
  15.     'Userform1.TextBox1.SetFocus
  16. End Sub
複製代碼

作者: dechiuan999    時間: 2010-8-6 08:41

謝謝版主大大的說明。
小弟引用大大將userform的initialize
內容取消之後,已可讓textbox的setfocus
發揮其功能。

不過,版主大大對initialize的說明,
小弟也曾直接在excel help內觀看其說明,
實因小弟資質尚淺,還無法能全然理解其含意。

不知能否請版主大大能再多多開示。
感恩大大!
作者: GBKEE    時間: 2010-8-6 08:59

小弟引用大大將userform的initialize內容取消之後,已可讓textbox的setfocus發揮其功能
dechiuan999 發表於 2010-8-6 08:41

真正的發揮其功能在此
Private Sub CommandButton1_Click()
    TextBox1.SetFocus
End Sub
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Private Sub UserForm_Initialize()
    'CommandButton1 設定屬性
    With CommandButton1
        .Caption = "發送 " & .Caption
        .Font.Size = 14
        .Font.Bold = True
        .Width = .Width + 30
    End With
End Sub
作者: dechiuan999    時間: 2010-8-7 07:20

謝謝版主大大。

小弟已收下,
並好好研究及體會其含意。

感恩大大!
作者: dds727    時間: 2012-7-14 23:38

回復 4# GBKEE
請問大大~~
利用AfterUpdate()驗證身分證字號錯誤後,是否可以利用setfocus將指標指定在身份證字號的欄位上呢?
我的程式碼如下:
Private Sub id_AfterUpdate()
Dim mPID As String
mPID = Me![id]
mAE = Left(mPID, 1)
mSE = Mid(mPID, 2, 1)

Aer = DLookup("Numb", "CITYID", "[CODE]='" & mAE & "'")
chk = (Mid(Aer, 1, 1) + Mid(Aer, 2, 1) * 9 + Mid(mPID, 2, 1) * 8 + Mid(mPID, 3, 1) * 7 + Mid(mPID, 4, 1) * 6 + Mid(mPID, 5, 1) * 5 + Mid(mPID, 6, 1) * 4 + Mid(mPID, 7, 1) * 3 + Mid(mPID, 8, 1) * 2 + Mid(mPID, 9, 1) * 1 + Mid(mPID, 10, 1) * 1) Mod 10

If chk <> 0 Then
    MsgBox "身分證號碼輸入錯誤!!! 請重新輸入"
    Me![id] = ""
    Me![id].SetFocus
   
    Exit Sub
Else
    MsgBox "身分證號碼輸入正確!!!"
               
            Select Case mSE
                Case "1"
                    Me![e] = "男"
                    Me![Sexl].Value = "1"
                Case "2"
                    Me![e] = "女"
                    Me![Sexl].Value = "2"
            End Select
End If
End Sub

頭痛的小學生 2012.7.14
作者: GBKEE    時間: 2012-7-15 17:28

回復 6# dds727
Me![id] 這程式碼 在 2003是錯誤的   不知你是用何種Excel版本 .
SetFocus 方法  鍵盤的駐點移到指定命令列控制項,這樣該命令列控制項就可接收鍵盤輸入。用來操縱控制項的鍵盤輸入型態視該控制項的型態而定。  這是 控制項 的 方法
如是儲存格  請用 [id].Select




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)