vvvvb 发表于 2008-7-29 13:25

这个循环怎么加?

Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
        Input = TextBox1.Text
        Select Case input
            Case "A" To "Z"
                output = LCase(input) '大小写转换

            Case "a" To "z"
                output = UCase(input) '大小写转换
            Case Else
                output = "*"
        End Select
        TextBox2.Text = output
    End Sub

在 TXTBOX1 输入字符时 TXTBOX2自动转换大小写
现在问题是:1.在只是默认一个转换方式,如果你输入第一个字母是大写,他会转成小写,但再输入小写,或者数字,他都是输出小写
2.输入很长的数字时,他也只是输出一个 “*”

该怎么加个循环呢?

flyingcat2008 发表于 2008-8-1 13:52

不要用Ucase,Lcase

Private Sub Textbox1_Change()
  ''首先,我认为用 input 和 output作为变量名不合适,因为任何语言中都不要用函数名和关键字作变量名
  ''可改为inputStr,outputStr
  ''用判断字符的ASCII码值做比较好,因为Ucase,Lcase对这儿不好用.
  
  inputStr = Textbox1.Text
  inputLen = Len(inputStr)
  
  For i = 1 To inputLen
     
     oneChr = Mid$(inputStr, i, 1)
     asconechr = Asc(oneChr)
   
     
        Select Case asconechr
            Case 65 To 90
                outputStr = Chr(asconechr + 32) '大写-->小写转换

            Case 97 To 122
                outputStr = Chr(asconechr - 32) '小写-->大写转换
            Case Else
                outputStr = "*"
        End Select
        
     allChr = allChr + outputStr
     
   ''  MsgBox oneChr & "--->" & outputStr
        
  Next i
        
        Textbox2.Text = allChr

End Sub

随风逐流 发表于 2008-8-1 14:20

Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged

LZ是VB.NET的

flyingcat2008 发表于 2008-8-1 18:48

补充回答您的问题

在VB.NET中调试了一下,发现Lcase,Ucase函数没问题,但在vb6中确实行不通,以下程序可以解决您的问题(已经在VB.NET中调试通过)
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
        Dim inputstr, outputstr, onechr, allchr As String
        Dim inputlen, i As Integer
        allchr = ""
        inputstr = TextBox1.Text
        inputlen = Len(inputstr)
        For i = 1 To inputlen
            onechr = Mid(inputstr, i, 1)
            Select Case onechr
                Case "A" To "Z"
                    outputstr = LCase(onechr)
                Case "a" To "z"
                    outputstr = UCase(onechr)
                Case Else
                    outputstr = "*"
            End Select
            allchr = allchr + outputstr
        Next
        TextBox2.Text = allchr

    End Sub

[[it] 本帖最后由 flyingcat2008 于 2008-8-1 20:19 编辑 [/it]]

lisypro 发表于 2008-8-1 19:50

VB6与VB。NET 混了罢

页: [1]

编程论坛