3

次のように、テキストボックスに数字とドットのみを受け入れるようにするにはどうすればよいか疑問に思っています。

123.45 または 115 または 218.16978

私はすでに次のコードを持っています:

Private Sub TxtHStof_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtHStof.KeyPress
    e.Handled = Not Char.IsDigit(e.KeyChar)
    
End Sub

ただし、ドットのない数字のみが許可されます。

ドットも許可するようにコードを変更するにはどうすればよいですか?

4

14 に答える 14

10
e.Handled = Not (Char.IsDigit(e.KeyChar) OR e.KeyChar=".")
于 2012-06-28T13:58:54.900 に答える
3

を使用する必要がありますMaskedTextBox- フォーマット文字列の設定方法については、こちらを参照してください (これにより、数字と小数点のみに制限できます)。

http://msdn.microsoft.com/en-us/library/system.windows.forms.maskedtextbox.mask.aspx

于 2012-06-28T13:58:33.623 に答える
2

このコードでは、「,」(ヨーロッパ) と「.」を使用できます。(アメリカの) 10 進数。

Private Sub TGewicht_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TGewicht.KeyPress
    e.Handled = Not (Char.IsDigit(e.KeyChar) Or Asc(e.KeyChar) = 8 Or ((e.KeyChar = "." Or e.KeyChar = ",") And (sender.Text.IndexOf(".") = -1 And sender.Text.IndexOf(",") = -1)))
End Sub
于 2016-05-18T21:45:37.250 に答える
1

VBではなくC#から来て、私はこれを試していますが、これはうまくいくでしょうか:

e.Handled = Not (Char.IsDigit(e.KeyChar) AndAlso e.KeyChar.Equals('.'))
于 2012-06-28T13:59:03.263 に答える