-1

フォームにさまざまな入力テキストボックスがあります。各入力テキスト ボックスに入力した内容に基づいて、表示テキスト ボックスを更新します。ただし、テキストボックスの AppendText メッセージを使用します。数値のみを受け入れるように入力テキスト ボックスを設定しています。したがって、正しく入力された文字ごとに、表示テキストボックスを更新します。私が抱えている問題は、ユーザーが Key.Back または Key.Delete を選択したときです。表示テキストボックスの最後の文字を削除したいのですが、まだこれを正しく行っていません。AppendText() またはそのコントロールで利用可能なユーティリティ関数のいずれかを使用して、TextBox に含まれる文字列の最後の文字を削除するにはどうすればよいですか?

If (e.KeyChar = ChrW(Keys.Back)) Then
                txtDisplay.Text -= 1
                txtDisplay.Update()
                ElseIf (Not (Char.IsDigit(e.KeyChar) Or Char.IsControl(e.KeyChar) Or (e.KeyChar = "."))) Then
                    e.Handled = True
                Else
                    txtDisplay.AppendText(e.KeyChar)
                End If
4

1 に答える 1

0

KeypPressのイベントハンドラーでこれを使用しますtxtDisplay

    If e.KeyChar = ChrW(Keys.Back) Then
        If txtDisplay.Text.Length > 0 Then 
            txtDisplay.Text = txtDisplay.Text.Substring(0, txtDisplay.TextLength - 1)
            txtDisplay.SelectionStart = txtDisplay.Text.Length
        End If
    ElseIf (Not (Char.IsDigit(e.KeyChar) Or Char.IsControl(e.KeyChar) Or (e.KeyChar = "."))) Then
        e.Handled = True
    End If
于 2012-05-19T07:46:40.413 に答える