こんばんは、いつもお世話になりました。
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
--------------------------------------------------------------
以上
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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テキストボックスを空白にする方法
-
Excel ユーザーフォームで計算 ...
-
【VB.NET】テキストボックスに...
-
TextBoxの内容を右寄せ
-
アクセスできない保護レベルエ...
-
ユーザーフォームへのデータ入...
-
ACCESS 除算での小数点切上げ方法
-
【C#】コンボボックスにおけるS...
-
VBAのユーザーフォームで、テキ...
-
VBAで入力数値について
-
VBSのプログラム
-
テキストボックスに大文字を
-
合計値の反映
-
エクセルVBAでテキストボッ...
-
Vba 電卓のテキストボックスに...
-
VB2005テキストボックスへのコ...
-
VB.NETでのイベントの途中終了
-
C#のループでtextboxに値を入れ...
-
Matlabでsin波を使って矩形波を...
-
チェックボックスを操作できな...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
アクセスできない保護レベルエ...
-
エクセルVBAでテキストボッ...
-
【VB.NET】テキストボックスに...
-
VBAで入力数値について
-
VBAのユーザーフォームで、テキ...
-
VB2010 TextBoxの数字の表示...
-
ユーザーフォームへのデータ入...
-
コンボボックスからテキストボ...
-
visual basic初心者です。 visu...
-
テキストボックスに大文字を
-
VBでの入力値制限について
-
TextBoxの内容を右寄せ
-
Excel ユーザーフォームで計算 ...
-
【C#】コンボボックスにおけるS...
-
VB2005テキストボックスへのコ...
-
Vba テキストボックスの文字列...
-
Vba 電卓のテキストボックスに...
-
テキストボックスを空白にする方法
-
テキストボックスに入る文字を...
-
16進数
おすすめ情報