VB2008でボタンのクリック回数を分岐条件にするには?

解決


atom  2009-08-20 04:18:45  No: 142432

VB2008でボタンをクリックした回数を分岐条件にしようとしました。
例えば、クリック回数が1〜10回のときはLabel1に"A"と表示する
        クリック回数が11〜20回のときはLabel1に"B"と表示する
        クリック回数が31〜40回のときはLabel1に"C"と表示する
        クリック回数が40回を超えたときは今までクリックしていたボタンに"D"と表示する
        "D"と表示されたボタンをクリックするとクリック回数をtextbox1に表示する
というようなプログラムを作ろうと思っていたのですが、コマンドボタンが見つからず、index値でクリックした回数を取得できませんでした。
どなたかVB2008でこのようなものを作る方法を教えていただけないでしょうか?
ボタンは普通のbuttonで、分岐はselect caseでお願いします


ひよこ  2009-08-20 05:00:41  No: 142433

>コマンドボタンが見つからず、index値でクリックした回数を取得できませんでした。
ってところが、よくわからなかったのですが、

ボタンが押された回数を保持しておく変数を用意しておいて

クリックイベントの頭でその変数に毎回+1していくという方
法はどうでしょうか?

その値を使ってselect caseで場合わけすればいいかと思いま
す。


atom  2009-08-20 08:03:03  No: 142434

>コマンドボタンが見つからず、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に表示させることができません。
ここのところもご教授願えれば幸いです、よろしくお願いします


atom  2009-08-20 08:11:07  No: 142435

度々の書き込み申し訳ありません
dim times as integer
を忘れてました
それと最初の質問のときとチェック回数が違うのは、あくまで例として挙げた
までですので分岐の回数は気にしないでください


太郎冠者  2009-08-20 15:19:32  No: 142436

Select Case〜の前にButton1のTextをチェックする処理を入れればいいと思います。

>dim times as integer
Button1_Click内に定義するとButton1がClickされるたびに初期化されてしまうのでは?


ひよこ  2009-08-20 18:41:51  No: 142437

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

という風に、分岐をひとつ増やす方法はどうでしょう?


atom  2009-08-20 21:26:15  No: 142438

皆さんのおかげで出来上がりました
本当にありがとうございます!


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加