0

「小計」、「入札額」、および「変更」ボックスを備えた 3 つのテキスト ボックスを含むフォームを作成しています。小計ボックスと変更ボックスの両方が無効になっているため、ユーザーは入札ボックスに数字のみを入力できます。入力を制限するためにhttp://www.vbdotnetheaven.com/blogs/5908/restricting-user-input-in-vb-net.aspxから見つけた次のコードを使用しています。

Private Sub TextBox1_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
    If Not Char.IsDigit(e.KeyChar) Then
        e.Handled = True
    End If
End Sub

私の懸念は、その特定のコーディングが数字の入力を制限するために機能することですが、バックスペース、ドット、および削除キーも無効にします。私はこれにかなり慣れていません (VB/Studio について話し始めたのは 2 週間も経っていません。キープレスの使用経験はありませんが、試してみたかったのです)。

スペースバーの ASCII 値を除外してステートメントを操作if(および if ステートメントを追加) しようとしましたが、互換性のない型に関する警告が表示されるだけでした。フォームの実行中にテキスト入力をダブルクリックすることでテキストを置き換えることができますが、私のアプリは主にトランザクション アプリであるためキーボードを使用する可能性が高く、バックスペースとさらに重要なドットが本当に必要です。両方を無効から除外するにはどうすればよいですか?

4

1 に答える 1

0

MSDN ドキュメントのControl.KeyDownのサンプルを見てください。必要なものの約 95% です。

とはいえ、まだやるべきことがあることに注意してください。誰かが 124.34.22 を入力するとどうなりますか? MaskedTextBoxを考えるかもしれませんが、これが Visual Basic を学習するための演習である場合、それはほとんど不正行為です :)

于 2012-09-24T01:13:26.643 に答える