![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
こんばんは、いつもお世話になりました。
VB2008で "ストップワォッチ"と"タイムダウン"のプログラムを作っています。
要望:
1 TextBox1.textが入力しない時、ストップワォッチを実行 (OK)
2 TextBox1.textが入力する時、TextBox1.textの値からタイムダウンを実行 (OK)
3 TextBox1.textの値をクリアされた時、再度ストップワォッチを実行
4 TextBox1.textに文字列入力された時、数字に変更してから タイムダウンを実行 (例:全角12:56 →12:56)
5 TextBox1.textが入力エラーの場合は プログラムを抜け、何もしないこと
下記のソースでしたら、3と4,5はまだできていません。
宜しくお願いします。
----------------------------------------------------
'TextBox1.textが入力しない時、ストップワォッチを実行
If TextBox1.Modified = False Then
Timer1.Enabled = True
datStart = Now()
Me.Button1.Enabled = False
Me.Button3.Enabled = False
End If
'TextBox1.textが入力する時、TextBox1.textの値からタイムダウンを実行
If TextBox1.Modified = True Then
dTime = TextBox1.Text
Timer2.Interval = 1000
Timer2.Enabled = True
End If
'TextBox1.textの値を再度クリアされた時、ストップワォッチを実行
If Len(TextBox1.Text) = 0 Then
TextBox1.Modified = False
End If
--------------------------------------------------------------
以上
![「VB2008 textbox入力判断につ」の質問画像](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/3/236091_5497d93c9d82a/M.jpg)
No.1ベストアンサー
- 回答日時:
これってイベントで処理していないのですか?
1~5でやりたいことをTextBoxの各イベントに当てはめてみてはいかがでしょう?(各要望にも不明な点がありますが)
> 1 TextBox1.textが入力しない時、ストップワォッチを実行 (OK)
これは「フォーカスを持っていない」という判断と「入力後、数秒間テキストの変更がない」という判断ができます。
「フォーカスが外れたら」という条件であれば、LostFocusイベントで処理。
「最後の文字を入力してから○○秒後」であれば、TextChangedイベントでタイマーをスタートしてトリガとする。
> 2 TextBox1.textが入力する時、TextBox1.textの値からタイムダウンを実行 (OK)
TextChangedイベントかと思ったのですが、TextBox1の値でタイムダウンを実行の意味が分かりません。「入力する時 = フォーカスを得たとき」であればGotFocusイベントですけども。
> 3 TextBox1.textの値をクリアされた時、再度ストップワォッチを実行
TextChangedイベントで文字列が無くなった場合。
ちなみに、Len()を使わずともTextBox1.TextLengthで文字数が取れま。
> 4 TextBox1.textに文字列入力された時、数字に変更してから タイムダウンを実行 (例:全角12:56 →12:56)
> 5 TextBox1.textが入力エラーの場合は プログラムを抜け、何もしないこと
入力完了後に内容をチェック場合は「Validating」イベント。
時刻に変換できるか否かは、Date.TryParseが手っ取り早いです。
全体的に見て「文字列を入力する時」の定義があいまいな気がします。「フォーカスを得る/失う」「文字が追加される/削除される」といった明確なタイミングで表したほうが、おそらくコーディングするときも分かりやすいと思います。
ご回答頂き、ありがとうございました。
せっかく教えて頂きましたが、VBの勉強はまだ始まったばかりなので
何をするかよくわかりませんでした。
本件について、下記のソースを加えたら、目的を達成しました。
---------------Button1 Clickソース内の最初に追加--------
If TextBox3.Text = Nothing Then
TextBox3.Modified = False
End If
--------------------------------------------------------
以上
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) ボールの動きがスムーズに動いてかつ目盛り線描画を維持するためには 4 2023/05/31 10:01
- Visual Basic(VBA) エクセルのマクロについて教えてください。 3 2023/02/17 11:59
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/20 16:59
- Visual Basic(VBA) エクセルのマクロについて教えてください。 3 2023/02/22 08:53
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/20 14:46
- その他(プログラミング・Web制作) Pythonでのかんたんな物理シミュレーションについての書籍 5 2023/06/02 07:37
- Visual Basic(VBA) VBA 重複チェック後に値をワークシートに転記する方法を教えてください。 1 2023/03/19 12:43
- Excel(エクセル) マクロでテキストファイルを読み込んだ際の最終セルにデータと改行が含まれる問題の改善方法 2 2022/03/25 16:50
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- その他(プログラミング・Web制作) Pythonによる物理の斜方投射の位置座標表示について 2 2023/06/05 12:46
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Vba 電卓のテキストボックスに...
-
VB2010 TextBoxの数字の表示...
-
VBでテキストボックスの文字を...
-
テキストボックスに大文字を
-
ユーザーフォームへのデータ入...
-
VB2005テキストボックスへのコ...
-
エクセルVBAでテキストボッ...
-
VBAで入力数値について
-
16進数
-
VBでの入力値制限について
-
【VB.NET】テキストボックスに...
-
Excel ユーザーフォームで計算 ...
-
【C#】コンボボックスにおけるS...
-
アクセスできない保護レベルエ...
-
C#のループでtextboxに値を入れ...
-
他のフォームから別のフォーム...
-
Excel VBAでsub,dimは何の略?
-
ドラゴン曲線を再帰で書く
-
VB.NETでのイベントの途中終了
-
VS CodeでTEXファイルにPDF形式...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBAでテキストボッ...
-
アクセスできない保護レベルエ...
-
VBAで入力数値について
-
visual basic初心者です。 visu...
-
ユーザーフォームへのデータ入...
-
Excel ユーザーフォームで計算 ...
-
【VB.NET】テキストボックスに...
-
テキストボックスを空白にする方法
-
テキストボックスに大文字を
-
コンボボックスからテキストボ...
-
VB2005テキストボックスへのコ...
-
VBでローマ字入力とかな入力を...
-
VBでの入力値制限について
-
VBAのフォーム カーソル移動
-
TextBoxの内容を右寄せ
-
Vba テキストボックスの文字列...
-
整数かどうかチェックする
-
TEXTBOXの表示形式の変...
-
ACCESS 除算での小数点切上げ方法
-
テキストボックスとカーソルの制御
おすすめ情報