質問編集履歴
2
補足(全体のソースコード)
test
CHANGED
File without changes
|
test
CHANGED
@@ -41,6 +41,47 @@
|
|
41
41
|
ド初心者で無知が光りますが、ご教授いただけるとありがたいです。
|
42
42
|
また、分かりづらいところがあれば教えていただけると見直すきっかけになるのでありがたいです。
|
43
43
|
|
44
|
+
### 全体のソースコード
|
45
|
+
Dim ct As Integer
|
46
|
+
Dim n(2) As String
|
47
|
+
|
48
|
+
'お題をシャッフル
|
49
|
+
Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
|
50
|
+
Timer1.Enabled = True
|
51
|
+
End Sub
|
52
|
+
|
53
|
+
'ストップ
|
54
|
+
Private Sub Button6_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button6.Click
|
55
|
+
Timer1.Enabled = False
|
56
|
+
End Sub
|
57
|
+
|
58
|
+
'お題表示
|
59
|
+
Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick
|
60
|
+
Dim gPBox As Graphics = PictureBox10.CreateGraphics()
|
61
|
+
ct = ct + 1
|
62
|
+
If ct = ImageList1.Images.Count Then ct = 0
|
63
|
+
ImageList1.Draw(gPBox, 0, 0, ct)
|
64
|
+
End Sub
|
65
|
+
|
66
|
+
'お題による結果の条件分岐
|
67
|
+
ct = ImageList1.Images.Count ←ctの箇所にエラーが出ているので見直しています
|
68
|
+
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
|
69
|
+
|
70
|
+
|
71
|
+
If ct = 0 And (CheckBox2.Checked And CheckBox7.Checked And CheckBox4.Checked = True) Then 'お題:
|
72
|
+
MessageBox.Show("正解!" )
|
73
|
+
|
74
|
+
|
75
|
+
ElseIf ct = 1 And (CheckBox1.Checked And CheckBox7.Checked And CheckBox3.Checked = True) Then 'お題:
|
76
|
+
MessageBox.Show("正解!" )
|
77
|
+
|
78
|
+
|
79
|
+
ElseIf ct = 2 And (CheckBox1.Checked And CheckBox7.Checked And CheckBox8.Checked = True) Then 'お題:
|
80
|
+
MessageBox.Show("正解!" )
|
81
|
+
|
82
|
+
Else MessageBox.Show("残念!")
|
83
|
+
End If
|
84
|
+
End Sub
|
44
85
|
|
45
86
|
### 補足情報(FW/ツールのバージョンなど)
|
46
87
|
|
1
文章の修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,52 +1,30 @@
|
|
1
|
-
###
|
1
|
+
### やりたいこと
|
2
|
+
イメージリストによってピクチャーボックス内に連続で表示される画像がストップしたとき、そのストップした画像を変数に格納しようとしています。
|
3
|
+
|
2
|
-
n(0)に
|
4
|
+
そこで、n(0)にimage0を代入させるコードを書いたところエラーが出ました。
|
3
5
|
|
4
6
|
### 前提
|
5
|
-
|
6
|
-
シ
|
7
|
+
システムとしては、
|
7
|
-
イメージリストに0番で登録されている画像が表示されただけではまだお題として機能しておらず、「イメージリストn番の画像なら○○のチェックボックスを選択したとき「正解」と表示する」という旨のIf文がまわってしまいました。
|
8
|
-
|
8
|
+
登録番号0~2の画像で止まる→それぞれの画像をお題として問題を解く(お題別に正解が分岐する)
|
9
|
-
|
9
|
+
というのを目指しています。
|
10
|
-
|
11
10
|
|
12
11
|
### 発生している問題・エラーメッセージ
|
13
12
|
|
13
|
+
'Image' の値を 'Boolean' に変換できません
|
14
|
-
|
14
|
+
→8行目 If image0 Then
|
15
|
+
→10行目 ElseIf image1 Then
|
15
16
|
|
16
|
-
'Image' の値を 'Boolean' に変換できません
|
17
17
|
'Image' の値を 'Stringer' に変換できません
|
18
|
+
→9行目 n(0) = image0
|
19
|
+
→11行目 n(1) = image1
|
20
|
+
→12行目 Else n(2) = image2
|
18
21
|
|
19
22
|
### 該当のソースコード
|
20
|
-
|
21
|
-
|
23
|
+
|
22
|
-
Dim ct As Integer = 0
|
23
|
-
Dim n(2) As String
|
24
|
-
|
25
|
-
'お題をシャッフル
|
26
|
-
Private Sub Button
|
24
|
+
Private Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.Click
|
27
|
-
Timer1.Enabled = True
|
28
|
-
End Sub
|
29
|
-
|
30
|
-
'ストップ
|
31
|
-
Private Sub Button6_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button6.Click
|
32
|
-
Timer1.Enabled = False
|
33
|
-
End Sub
|
34
|
-
|
35
|
-
'お題表示
|
36
|
-
Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick
|
37
|
-
Dim gPBox As Graphics = PictureBox10.CreateGraphics()
|
38
|
-
ct = ct + 1
|
39
|
-
If ct = ImageList1.Images.Count Then ct = 0
|
40
|
-
ImageList1.Draw(gPBox, 0, 0, ct)
|
41
|
-
End Sub
|
42
|
-
|
43
|
-
'お題を決定
|
44
|
-
Private Sub Button7_MouseDown(sender As Object, e As MouseEventArgs) Handles Button7.MouseDown
|
45
25
|
Dim image0 As Image = ImageList1.Images(0)
|
46
26
|
Dim image1 As Image = ImageList1.Images(1)
|
47
27
|
Dim image2 As Image = ImageList1.Images(2)
|
48
|
-
|
49
|
-
ct = ImageList1.Images.Count
|
50
28
|
|
51
29
|
If image0 Then
|
52
30
|
n(0) = image0
|
@@ -57,33 +35,12 @@
|
|
57
35
|
|
58
36
|
End Sub
|
59
37
|
|
60
|
-
|
38
|
+
### 試したこと
|
61
|
-
|
39
|
+
登録した画像を示す方法を、 Dim image0 As Image = ImageList1.Images(0)と書きました。
|
40
|
+
これは自分の実力ではなく、自動修復の提案を用いたものです。しかしこれ以外に、どのように表示された画像を指し示せばよいのか分からなかったのでそのまま用い、 If image0 Then 以降のコードを書きました。
|
41
|
+
ド初心者で無知が光りますが、ご教授いただけるとありがたいです。
|
42
|
+
また、分かりづらいところがあれば教えていただけると見直すきっかけになるのでありがたいです。
|
62
43
|
|
63
|
-
If n(0) And (CheckBox2.Checked And CheckBox7.Checked And CheckBox4.Checked = True) Then 'お題:0
|
64
|
-
MessageBox.Show("正解!" )
|
65
|
-
|
66
|
-
|
67
|
-
ElseIf n(1) And (CheckBox1.Checked And CheckBox7.Checked And CheckBox3.Checked = True) Then 'お題:1
|
68
|
-
MessageBox.Show("正解!" )
|
69
|
-
|
70
|
-
|
71
|
-
ElseIf n(2) And (CheckBox1.Checked And CheckBox7.Checked And CheckBox8.Checked = True) Then 'お題:2
|
72
|
-
MessageBox.Show("正解!")
|
73
|
-
|
74
|
-
Else MessageBox.Show("残念!" )
|
75
|
-
End If
|
76
|
-
End Sub
|
77
|
-
|
78
|
-
### 試したこと
|
79
|
-
ボタン7にマウスイベントがあるのは、「もしボタンが押されたらn(0)にimage0を格納する」を試した名残です。
|
80
|
-
|
81
|
-
「0に登録したお題が表示されればnに0が代入される→n=0のときの結果の条件分岐」を試そうとしたのですが、「0に登録した画像を表示されたとき」をどう表せばいいのか分からず断念しました。
|
82
|
-
授業資料に「イメージリスト」の使い方として「登録した画像のいずれかを指し示す方法:ImageList1.Images(n)」という記載があったのですが、()の中身に変数のnやctを入れても、数字を入れてもエラーがでるので使い方がよく分からなかったです。ソースコードにDim image0 As Image = ImageList1.Images(0)と書いてあるのは、自動修復(?)の提案に乗っただけです…。
|
83
|
-
|
84
|
-
|
85
|
-
正直、imageの値をbooleanに変換できないというエラーが出ている以上、自分がやろうとしていることってどう頑張っても実行できないんじゃないか?という気がしています。
|
86
|
-
だからこそ手詰まりになって質問させていただいているのですが、勉強中ということもあり、答えていただけると嬉しいです。
|
87
44
|
|
88
45
|
### 補足情報(FW/ツールのバージョンなど)
|
89
46
|
|