VB2008でボタンをクリックした回数を分岐条件にしようとしました。
例えば、クリック回数が1〜10回のときはLabel1に"A"と表示する
クリック回数が11〜20回のときはLabel1に"B"と表示する
クリック回数が31〜40回のときはLabel1に"C"と表示する
クリック回数が40回を超えたときは今までクリックしていたボタンに"D"と表示する
"D"と表示されたボタンをクリックするとクリック回数をtextbox1に表示する
というようなプログラムを作ろうと思っていたのですが、コマンドボタンが見つからず、index値でクリックした回数を取得できませんでした。
どなたかVB2008でこのようなものを作る方法を教えていただけないでしょうか?
ボタンは普通のbuttonで、分岐はselect caseでお願いします
>コマンドボタンが見つからず、index値でクリックした回数を取得できませんでした。
ってところが、よくわからなかったのですが、
ボタンが押された回数を保持しておく変数を用意しておいて
クリックイベントの頭でその変数に毎回+1していくという方
法はどうでしょうか?
その値を使ってselect caseで場合わけすればいいかと思いま
す。
>コマンドボタンが見つからず、index値でクリックした回数を取得できませんでした。
質問する前に、重複するものがないか調べたのですが、
http://madia.world.coocan.jp/vb/vb_bbs2/200512/200512_05120008.html
のようなものがあったのでそれについて言おうとしたんです。しかし、私の理解力と表現力が1bit程度ですからこのように分かりにくい表現となってしまいました。ひよこさん申し訳ありませんでしたm(_ _)m
さて、肝心のプログラムのほうですが、
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
times = times + 1
Select Case times
Case 1
Label1.Text = "A"
Case 2
Label1.Text = "B"
Case 3
Label1.Text = "C"
Case 4
Button1.Text = "D"
End Select
End Sub
ここまでは出来たんですが、Dと表示したボタンをクリックしたときに今までのクリック回数をtextbox1に表示させることができません。
ここのところもご教授願えれば幸いです、よろしくお願いします
度々の書き込み申し訳ありません
dim times as integer
を忘れてました
それと最初の質問のときとチェック回数が違うのは、あくまで例として挙げた
までですので分岐の回数は気にしないでください
Select Case〜の前にButton1のTextをチェックする処理を入れればいいと思います。
>dim times as integer
Button1_Click内に定義するとButton1がClickされるたびに初期化されてしまうのでは?
1〜11ならA
11〜20ならB
21〜30ならC
40回を超えたらD
Dと表示されたボタンを押したら
クリック回数をテキストボックスに表示
ってことは、40回目ではボタンにDと表示
させるだけですよね?テキストボックスに
クリック回数を表示させるのは41回目から
だから
times = times + 1
Select Case times
Case 1
Label1.Text = "A"
Case 2
Label1.Text = "B"
Case 3
Label1.Text = "C"
Case 4
Button1.Text = "D"
Case 5
TextBox1.Text =times.ToString
End Select
という風に、分岐をひとつ増やす方法はどうでしょう?
皆さんのおかげで出来上がりました
本当にありがとうございます!