ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

Visual Basic User's Clubコミュの学校での課題なんですけど・・・

  • mixiチェック
  • このエントリーをはてなブックマークに追加
初めまして、学校での応用課題をやってるんですが、イマイチわからずグーグルで色々調べたのですが、わからず八方ふさがりの状態です。
どなたか、ご教授してくださいませんか?

使用OS:Windows XP
使用ソフト:VB.NET2005

課題内容:タイマーを作成する際、コンボボックスにテキストを入力できるようにし、数値(ミリ秒ではなく、普通の秒数で)を入力しEnterキーを押したらタイマーが作動するようにする。
ただし、空白及び、文字列の場合はメッセージボックスで注意文を出すようにすること。
また、タイマーが作動中は、Button1をクリックできないようにする。

本当はフローチャートを掲載したかったんですが、出来ないので番号順に並べました。(?から順に処理を行います)

?プログラムスタート
?判断:ComboBoxの中身は空白か?
Yesの場合:?に移行
Noの場合:?の処理に移行
?判断:ComboBoxの中身は文字列か?
Yesの場合:?の処理に移行
Noの場合:?の処理に移行
?MsgBox→"数値を入力してください!"
?の処理に戻る
?タイマースタート
?Button1の表示が"動作中"に変化
?規定の時間になったらButton1の表示が"時間になりました!"に変化
?プログラム終了


以下が組んだプログラム文です。

Public Class Form1

Private Sub Button1_Click(ByVal xender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'コンボボックスの中身が空白の場合'
If ComboBox1.text = "" then
MsgBox("数値を入力してください!",0)
Return
End If

'コンボボックスの中身が文字列の場合'
※1
'クリックにより、ボタンの表示を変更する'
Button1.Text = "動作中"

'タイマースタート'
Timer1.Interval = ComboBox1.Text
Timer1.Enabled = Ture
Button1.Enabled = False
End Sub

Private Sub Button1_Click(ByVal xender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
'プログラムを終了する'
End
End Sub

Private Sub Button1_Click(ByVal xender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
'指定時間が経過したら、ボタンの表示を変更する'
Button1.Text() = "時間になりました!"
'タイマーストップ'
Timer1.Enabled = False
Button1.Enabled = True
End Sub

End Class

わからない事

※1.ComboBox1の中身が文字列だった場合、If文でどうやって記述すればいいんでしょうか?

※2.ComboBox1の欄にテキストを入力できるようにするにはどうプログラムすればいいんでしょうか?

最後に長文になり申し訳ありません。

宜しくお願いします。

コメント(4)

If IsNumeric(ComboBox1.text)= false then
MsgBox("数値を入力してください!",0)
Return
End If
とすれば数値以外が入力されることをブロックされるんじゃないかなーとおもったり。
>クマたろさん

へーそういうやりかたがあったんですか!

ありがとうございます!

早速試してみようと思います。

VBでは以下のサイトによくお世話になってます。今回の答え&今後の役に立つかと。
参考まで。

http://dobon.net/vb/dotnet/index.html

http://homepage1.nifty.com/rucio/main/main.htm
IsNumericでチェックすると指数表記がTrueと判定されてしまいます。
(例えば"1e3"と入力すると 1X10の3乗 と判断され数値として認識されてしまいます)

Ifでチェックするのであれば
Decimal型のStaticメソッドであるTryParseで変換結果を判定してはいかがでしょうか。

Dim decBuff As Decimal

If Decimal.TryParse(TextBox1.Text, decBuff) Then
MsgBox("入力文字列は数値です", , "入力文字列チェック")
Else
MsgBox("数値ではありません", , "入力文字列チェック")
End If

ただしTryParseで判断した場合、全角文字は全て非数値と判定されます。

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

Visual Basic User's Club 更新情報

Visual Basic User's Clubのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング