none
Textbox限制輸入問題(vb2008) RRS feed

  • 問題

  • Textbox限制輸入問題(vb2008)
    如:
    If textbox1.text = "qwerty" then
    me.close
    Endif

    如何限制Textbox.text 不可輸入的英文大細階??
    好像qwerty,就算是QwErTy或QWERTY等等都不想它出現要如何??
    2010年1月17日 上午 10:37

解答

  •     Private Sub TextBoxA_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBoxA.KeyPress
            Dim strlimit As String
            strlimit = "abcdefghijklmnopqrstuvwxyz1234567890@"
            Dim keychar As Char = e.KeyChar
            If InStr(strlimit, keychar) <> 0 Or e.KeyChar = Microsoft.VisualBasic.ChrW(8) Then
                e.Handled = False
            Else
                e.Handled = True
            End If
            '限制只能輸入小寫字母, 純數字, 其餘符號均拒絕, 僅留"@"
        End Sub

        再配上黑名單設定應該就可以
    • 已標示為解答 Lolota Lee 2010年1月22日 上午 06:51
    2010年1月20日 上午 10:28

所有回覆

  • String.ToLower 方法

    您是要不能輸入大寫,或是直接轉小寫呢...
    2010年1月17日 上午 11:07
  • 用char.IsUpper()判斷大小寫
    或直接用TextBox.CharacterCasing屬性

    2010年1月17日 上午 11:11
  • :::限制英文大寫以及倒退鍵
        Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
            If (Asc(e.KeyChar) >= 65 AndAlso Asc(e.KeyChar) <= 90) Or (Asc(e.KeyChar) = 8) Then
                e.Handled = False
            Else
                e.Handled = True
            End If

        End Sub

    2010年1月17日 下午 12:58
  • Hi!

    您也可以參考這篇 textbox 的輸入判斷

            If Char.IsLower(e.KeyChar) Or e.KeyChar = Chr(13) Or e.KeyChar = Chr(8) Then  ' 英文小寫、Enter、Backspace
                e.Handled = False
            Else
                e.Handled = True
            End If
    另外,假如要限制 TextBox 上不使用快速鍵與滑鼠右鍵表單(防止使用者用複製貼上的方式)
    可使用 TextBox.ShortcutsEnabled 屬性 : 取得或設定值,指出是否啟用定義的快速鍵。
    我的Blog .NET菜鳥自救會
    2010年1月17日 下午 02:58
    版主
  • 我不是要限制不能打什麼鍵....
    而是在textbox上
    我不想有這些字出現
    如:qwerty@hotmail.com
    不是限制某字,而是限制一堆的字
    在textbox上
    這堆字
    qwerty@hotmail.com就算這一堆字是大細階也不能出現...
    如:
    if textbox1.text = "qwerty@hotmail.com" then
    msgbox("不能輸入此帳號")
    endif
    這個程式是網頁msn登入程式,而我不想這個帳號能出現在textbox上..
    因為登入msn大細階也可登入,所以想限制
    2010年1月17日 下午 05:35
  • 編一個黑名單字典, 然後在TextBoxBase. TextChanged 事件 中檢查目前TextBox.Text屬性值是否等於字典中的某個不允許出現的字詞.

    MSDN 文件庫很重要
    問題本身越具體, 越容易得到大家的回應
    回應幫助你的人是一種禮貌, 良好的禮貌有助於激發大家對你問題回應的熱情
    2010年1月17日 下午 05:56
    版主
  • if Ucase(textbox1.text) = "QWERTY@HOTMAIL.COM" then
       msgbox("不能輸入此帳號")
    endif
    Jones
    2010年1月18日 上午 09:46
  • 那麼你到底是要
    (1) 只允許輸入小寫字
    (2) 不允許特定字元輸入
    (3) 不允許特定字串輸入
    (4) 其它

    如同 Bill Chung 的簽名檔所 言 : 問題本身越具體, 越容易得到大家的回應

    2010年1月19日 上午 01:13
  •     Private Sub TextBoxA_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBoxA.KeyPress
            Dim strlimit As String
            strlimit = "abcdefghijklmnopqrstuvwxyz1234567890@"
            Dim keychar As Char = e.KeyChar
            If InStr(strlimit, keychar) <> 0 Or e.KeyChar = Microsoft.VisualBasic.ChrW(8) Then
                e.Handled = False
            Else
                e.Handled = True
            End If
            '限制只能輸入小寫字母, 純數字, 其餘符號均拒絕, 僅留"@"
        End Sub

        再配上黑名單設定應該就可以
    • 已標示為解答 Lolota Lee 2010年1月22日 上午 06:51
    2010年1月20日 上午 10:28