|
分類:[VB6 以前]
(VB.NET2003) 前回、質問させてもらった超初心者です。 前回の質問とは少し変えたプログラムで質問させてもらいます。
' PictureBox1〜14のイメージをクリア For Each picBox As PictureBox In New PictureBox() {PictureBox1, PictureBox2, ・・・(長いので略} picBox.Image = Nothing Next End Sub
' PictureBox○(1〜14)に15〜51の押された画像を入れる Private Sub PictureBox15to51_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox15.Click, PictureBox16.Click, PictureBox17.Click, PictureBox18.Click, ・・・(略
' a1〜14(手札の配列) Dim a1(0), a2(0), a3(0), a4(0), a5(0), a6(0), a7(0), a8(0), a9(0), a10(0), a11(0), a12(0), a13(0), a14(0) As String
For Each picBox As PictureBox In New PictureBox() {PictureBox1, PictureBox2, ・・・(略} If picBox.Image Is Nothing Then picBox.Image = CType(sender, PictureBox).Image Exit Sub End If
上記は、ピクチャーボックス15〜51のどれかが押されるとピクチャーボックス1に押された画像が挿入され、 次にピクチャーボックス15〜51のどれかが押されると次はピクチャーボックス2に押された画像が挿入されるプログラムです。
どの画像にどの画像(ピクチャーボックス15〜51)が入ったか確認するプログラム(下記)を作ったのですが、 うまくいきませんでした。
例えば、ピクチャーボックス1にピクチャーボックス15が入ったならラベル1に1-15と表示させたいのですが、 ピクチャーボックス1ではなく、なぜかピクチャーボックス2に挿入されたときにラベル1が「1-15」表示してしまいます。 どなたか修正お願いします┏○
If picBox Is PictureBox1 Then ' ピクチャーボックス1にピクチャーボックス15が入ったならラベル1に「1−15」と表示させる。 If sender Is PictureBox15 Then a1(0) += 15 Label1.Text = "1-15"
ElseIf sender Is PictureBox16 Then a1(0) += 16 Label1.Text = "1-16"
ElseIf sender Is PictureBox17 Then a1(0) += 17 Label1.Text = "1-17" End If End If
If picBox Is PictureBox2 Then If sender Is PictureBox15 Then a2(0) += 15 Label1.Text = "2-15"
ElseIf sender Is PictureBox16 Then a2(0) += 16 Label1.Text = "2-16"
ElseIf sender Is PictureBox17 Then a2(0) += 17 Label1.Text = "2-17" End If End If Next End Sub
|