テキストボックスによる数値入力の制限で困っています。
LEDの点灯とモーターの動作のチェックプログラムを作り
完成したのですが、いろいろとネットで調べ
下記のプログラムでテキストボックスの数値入力を作成したのですが、
作成プログラム
Dim bKeyNum As Boolean = Char.IsDigit(e.KeyChar)
If bKeyNum <> True Then
e.Handled = True
End If
この方法ではBack Spaceキーが効かないため上司から使いづらいので
キーが効くようにしてほしいと要望があり、
もう一度探しましたが、どれも記述どおりにやっても
うまく動きません。
何か私に分かりやすく説明をしてくれて簡単に数値入力と
Back Spaceキーが使えるプログラムを教えてください。
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
BackSpaceが動いたら、今度は左右キーやDeleteキーも・・・という要求が出そうですね。
なので、下記のように 数字とコントロール文字以外は Handled = True となる式を作ればよいと思います。
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
e.Handled = Not (Char.IsDigit(e.KeyChar) OrElse Char.IsControl(e.KeyChar))
End Sub
ありがとうございました。
解決ができました。
これで上司に文句を言われづにすみそうです。
なるほど、Char.IsContorolというのがBack Space等の
コントロールキーに対するメソッドになるわけですね。
これから行くと英文字やカタカナ、漢字等のメソッドも
あるのでしょうか。
No.2
- 回答日時:
Char構造体のSharedメソッドにおけるIs***メソッドは特定の文字の種類を判別するメソッドです。
これ以外の文字については、GetUnicodeCategoryで文字コードのカテゴリを取得できます。それ以外の文字は、文字コードから判断します。
詳しくはMSDNに丸投げ。
あとついでに気づいたことを。
現状だとペーストは可能だと思います。
.NET 2.0以降であればTextboxのShortcutsEnabledをFalseにすることでショートカットによる操作とコンテキストメニュー(右クリックメニュー)を無効にします。
ショートカットキーについてもありがとうございました。
確かにFalseにするのを忘れていました。
さっそく直しておきました。
MSDNでGetUnicodeCategoryを詳しく調べてみます。
Wizard_Zeroさん、
いろいろとご教授ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- その他(Microsoft Office) エクセルのマクロを教えてください。 1 2023/01/27 09:05
- Visual Basic(VBA) 【再々投稿】VBAのプログラムで動作しなくて困っています 8 2022/10/14 09:06
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 2 2022/06/25 22:42
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Excel(エクセル) Excelのマクロについて 2 2022/06/14 03:38
- JavaScript HTMLでJavaScriptを使用してプログラムを作ります。 入力されたパスワードを取得して、パス 2 2022/10/18 01:05
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- Visual Basic(VBA) visual basic初心者です。 visual studioで電卓を作成しています。 実行時にテ 1 2023/02/08 00:18
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBAで、条件に一致する...
-
VBPをダブルクリックするとたま...
-
Refreshメソッドの使い方
-
drawStringで文字間隔の調整
-
配列のメソッド
-
Javaはmainメソッドからじゃな...
-
エクセルVBAにおけるON TIMEメ...
-
JSPで<SELECT>の中にDBから持っ...
-
[VBA]GetSaveAsFilenameメソッ...
-
タブコントロールの問題 (VB)
-
worksheets & rows メソッドは...
-
FEM解析の読み方は?
-
エクリプス アウトラインビュ...
-
(String args[])というメッソ...
-
VBAでコピーコマンドを実行する...
-
for文(拡張)内の変数(ローカ...
-
final修飾子を使っているのに、...
-
Labelコントロールに数字を代入...
-
引数は省略できません。とのコ...
-
JAVA初心者です。JAVAで音を鳴...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBAで、条件に一致する...
-
mainメソッドのthrows節で設定...
-
final修飾子を使っているのに、...
-
Labelコントロールに数字を代入...
-
onClickで関数呼出し後に、結果...
-
DataGridViewでセルクリックイ...
-
JSPで<SELECT>の中にDBから持っ...
-
コマンドプロンプト実行後に画...
-
Refreshメソッドの使い方
-
エクセルVBAにおけるON TIMEメ...
-
boolean型のフィールドとゲッタ...
-
javascriptからjavaを呼び出したい
-
VBPをダブルクリックするとたま...
-
配列のメソッド
-
【sendkeysメソッドが動かずに...
-
Excel VBA でExcelを終了したい...
-
VB.netで、シリアル通信のタイ...
-
worksheets & rows メソッドは...
-
Application.Wait の参照設定
-
(String args[])というメッソ...
おすすめ情報