質問編集履歴

2

補足(全体のソースコード)

2023/07/26 02:57

投稿

koumekoume333
koumekoume333

スコア0

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

文章の修正

2023/07/26 01:32

投稿

koumekoume333
koumekoume333

スコア0

test CHANGED
File without changes
test CHANGED
@@ -1,52 +1,30 @@
1
- ### 実現したいこと
1
+ ### やりたいこと
2
+ イメージリストによってピクチャーボックス内に連続で表示される画像がストップしたとき、そのストップした画像を変数に格納しようとしています。
3
+
2
- n(0)にimage0を代入させたいです
4
+ そこで、n(0)にimage0を代入させるコードを書いところエラーが出ました
3
5
 
4
6
  ### 前提
5
-
6
- ャッフルでお題(画像)が表示されるので、その表示されたお題と沿う画像が選択できれば「正解」、そうでなければ「残念」とでるシステムをVisual Studioでつくっいます。
7
+ システムとしは、
7
- イメージリストに0番で登録されている画像が表示されただけではまだお題として機能しておらず、「イメージリストn番の画像なら○○のチェックボックスを選択したとき「正解」と表示する」という旨のIf文がまわってしまいました。
8
- ので、表示さ画像をお題として確定させるために「お題を決定」のボタンを設置し、そこで確定させてから条件分岐に移ろうと考えました。
8
+ 登録番号0~2画像止まる→そぞれの画像をお題として問題を解く(お題別に正解が分岐する)
9
- 確定させたお題(image0)を変数(n(0))に格納して、ちの条件分岐につながるようにプログラム組もうとしているときに以下のエラーメッセージがでした
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 Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
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
- Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
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