通貨額のみを受け入れるテキストボックス(たとえば123.40)があり、数字、小数点、およびバックスペースキーのみを許可する次のルーチンを作成しました。問題は、ユーザーがテキストボックスに値をコピー&ペースト(Ctrl-Vなど)することができないことです。テキストボックスのCtrl-Vキーイベントをキャプチャする方法
Private Sub unitPriceTxtBox_keypress(ByVal sender As System.Object, ByVal e As KeyPressEventArgs) Handles unitPriceTxtBox.KeyPress
If (Not e.KeyChar = ChrW(Keys.Back) And (".-").IndexOf(e.KeyChar) = -1) Or (e.KeyChar = "." And unitPriceTxtBox.Text.ToCharArray().Count(Function(c) c = ".") > 0) Then
e.Handled = True
End If
End Sub
私はオンラインいくつかの研究をしていたとCtrl Vキーはhttps://social.msdn.microsoft.com/Forums/en-US/5824457e-9112-43ef-83df-7037a36dd365/what-is-the-keychar-for-ctrlc-and-ctrlv-in-c?forum=winformsを参照してくださいコード22を使用していますが、動作するようには思えません。
キーコードの別の参照がここにあります。 https://msdn.microsoft.com/en-us/library/system.windows.forms.keys(v=vs.110).aspx
誰でも洞察力はありますか?
ありがとうございました。
NumericUpDownコントロールを使用します。 –
ありがとうReza。 NumericUpDownを使用すると、デザインがよりクリーンになります。私は、NumericUpDownがテキストボックスよりも優れていることを確信する必要があり、長期的にコードを維持する方が簡単です。 – g5thomas
数値データ入力の場合は、それが良いです。 –