-4

VB.NET で、コンソールから標準の 254 文字未満を読み取るにはどうすればよいでしょうConsole.ReadLine()か?

私は使用してみましたConsole.ReadKey()

Dim A As String = ""

Dim B As Char

For i = 0 To 10

    B = Console.ReadKey().KeyChar
    A = A & B

Next

MsgBox(A)

それは私を制限し、文字列を返しますが、ユーザーが 10 文字未満を入力した場合、どのように機能するのでしょうか?

4

1 に答える 1

2

入力を 10 文字に制限し、Enter キーを押して 10 文字未満の入力を許可するには、次のようなループを使用できます。Enter キーをチェックし、押された場合はループを終了します。10 文字が入力されると、ループは自然に終了します。

編集 - コメントごとに更新

Imports System.Text

Module Module1

    Sub Main()
        Dim userInput = New StringBuilder()
        Dim maxLength = 10
        While True
            ' Read, but don't output character
            Dim cki As ConsoleKeyInfo = Console.ReadKey(True)
            Select Case cki.Key
                Case ConsoleKey.Enter
                    ' Done
                    Exit While
                Case ConsoleKey.Backspace
                    ' Last char deleted
                    If userInput.Length > 0 Then
                        userInput.Remove(userInput.Length - 1, 1)
                        Console.Write(vbBack & " " & vbBack)
                    End If
                Case Else
                    ' Only append if less than max entered and it's a display character
                    If userInput.Length < maxLength AndAlso Not Char.IsControl(cki.KeyChar) Then
                        userInput.Append(cki.KeyChar)
                        Console.Write(cki.KeyChar)
                    End If
            End Select
        End While
        MsgBox("'" & userInput.ToString() & "'")
    End Sub

End Module
于 2014-05-30T22:03:56.500 に答える