質問編集履歴
5
文章やソースを大幅に変更しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
### 前提
|
2
2
|
|
3
|
-
C#でテトリス
|
3
|
+
C#でテトリスを作っています。
|
4
4
|
テトリミノを表示する機能を実装中に以下の実現したいことが発生しました。
|
5
5
|
このようなソースがあるのですが、理解できなかったです。
|
6
6
|
```
|
@@ -42,6 +42,7 @@
|
|
42
42
|
using System.ComponentModel;
|
43
43
|
using System.Data;
|
44
44
|
using System.Drawing;
|
45
|
+
using System.IO;
|
45
46
|
using System.Linq;
|
46
47
|
using System.Text;
|
47
48
|
using System.Threading.Tasks;
|
@@ -54,10 +55,9 @@
|
|
54
55
|
//定数
|
55
56
|
private const byte length = 26;//フィールド用。縦の長さ
|
56
57
|
private const byte width = 12;//フィールド用。横の長さ
|
57
|
-
|
58
|
+
|
58
|
-
//
|
59
|
+
//画面に表示するためのPictureBox
|
59
|
-
|
60
|
+
internal PictureBox[,] gameBoard_P;
|
60
|
-
//private const byte Prohibited = 2;//ゲーム内で置けないエリア
|
61
61
|
|
62
62
|
internal Form1()
|
63
63
|
{
|
@@ -65,11 +65,7 @@
|
|
65
65
|
}
|
66
66
|
|
67
67
|
//DataClassをnewして呼び出して使えるようにする
|
68
|
-
|
68
|
+
private static DataClass dataClass = new DataClass();
|
69
|
-
/*↑この中に画像データを書いたソースがあります。
|
70
|
-
*このようなソースで書いております。
|
71
|
-
* internal readonly Image Tetrimino = Image.FromFile(Directory.GetCurrentDirectory() + "\\Tetrimino.png");
|
72
|
-
*/
|
73
69
|
|
74
70
|
//フォームのロード時に呼ばれるメソッド
|
75
71
|
private void Form1_Load(object sender, EventArgs e)
|
@@ -82,69 +78,38 @@
|
|
82
78
|
{
|
83
79
|
dataClass.GameBoardFormat();
|
84
80
|
|
81
|
+
//PictureBoxのインスタンス
|
82
|
+
this.gameBoard_P = new PictureBox[length, width];
|
83
|
+
|
85
84
|
//PictureBoxを初期盤面に設定する
|
86
85
|
for (int i = 0; i < length; i++)
|
87
86
|
{
|
88
87
|
for (int j = 0; j < width; j++)
|
89
88
|
{
|
90
|
-
i
|
89
|
+
gameBoard_P[i, j] = new PictureBox();
|
90
|
+
|
91
|
+
//壁のPictureBoxにBitMapを入れる
|
92
|
+
if ((i == 0 || i == length - 1) && (j == 0 || j == width - 1))
|
91
93
|
{
|
92
|
-
switch (j)
|
93
|
-
{
|
94
|
-
case 0:
|
95
|
-
pictureBox1.Image = dataClass.Tetrimino;
|
96
|
-
break;
|
97
|
-
|
98
|
-
case 1:
|
99
|
-
|
94
|
+
gameBoard_P[i, j].Size = new Size(25, 25);
|
100
|
-
break;
|
101
|
-
|
102
|
-
case 2:
|
103
|
-
pictureBox3.Image = dataClass.gameoverLine_image;
|
104
|
-
break;
|
105
|
-
|
106
|
-
case 3:
|
107
|
-
pictureBox4.Image = dataClass.gameoverLine_image;
|
108
|
-
break;
|
109
|
-
|
110
|
-
case 4:
|
111
|
-
pictureBox5.Image = dataClass.gameoverLine_image;
|
112
|
-
break;
|
113
|
-
|
114
|
-
case 5:
|
115
|
-
pictureBox6.Image = dataClass.gameoverLine_image;
|
116
|
-
break;
|
117
|
-
|
118
|
-
case 6:
|
119
|
-
pictureBox7.Image = dataClass.gameoverLine_image;
|
120
|
-
break;
|
121
|
-
|
122
|
-
case 7:
|
123
|
-
pictureBox8.Image = dataClass.gameoverLine_image;
|
124
|
-
break;
|
125
|
-
|
126
|
-
case 8:
|
127
|
-
pictureBox9.Image = dataClass.gameoverLine_image;
|
128
|
-
break;
|
129
|
-
|
130
|
-
case 9:
|
131
|
-
|
95
|
+
gameBoard_P[i, j].SizeMode = PictureBoxSizeMode.StretchImage;
|
132
|
-
break;
|
133
|
-
|
134
|
-
case 10:
|
135
|
-
|
96
|
+
gameBoard_P[i, j].Location = new Point(i * 25, j * 25);
|
136
|
-
break;
|
137
|
-
|
138
|
-
case 11:
|
139
|
-
|
97
|
+
gameBoard_P[i, j].Image = dataClass.Tetrimino;
|
140
|
-
break;
|
141
|
-
|
142
|
-
default:
|
143
|
-
break;
|
144
|
-
}
|
145
98
|
}
|
146
99
|
}
|
147
100
|
}
|
101
|
+
//フォームにコントロールを追加
|
102
|
+
this.Controls.AddRange(this.gameBoard_P);
|
103
|
+
this.ResumeLayout(false);
|
104
|
+
|
105
|
+
|
106
|
+
|
107
|
+
}
|
108
|
+
|
109
|
+
//タイマーカウント事に呼び出されるメソッド
|
110
|
+
private void TimerCount_Tick(object sender, EventArgs e)
|
111
|
+
{
|
112
|
+
|
148
113
|
}
|
149
114
|
}
|
150
115
|
}
|
@@ -162,48 +127,4 @@
|
|
162
127
|
Version 17.4.1
|
163
128
|
VisualStudio.17.Release/17.4.1+33110.190
|
164
129
|
Microsoft .NET Framework
|
165
|
-
Version 4.
|
130
|
+
Version 4.7
|
166
|
-
|
167
|
-
インストールされているバージョン:Community
|
168
|
-
|
169
|
-
Visual C++ 2022 00482-90000-00000-AA301
|
170
|
-
Microsoft Visual C++ 2022
|
171
|
-
|
172
|
-
ASP.NET and Web Tools 17.4.326.54890
|
173
|
-
ASP.NET and Web Tools
|
174
|
-
|
175
|
-
Azure App Service Tools v3.0.0 17.4.326.54890
|
176
|
-
Azure App Service Tools v3.0.0
|
177
|
-
|
178
|
-
C# ツール 4.4.0-6.22559.4+d7e8a398ef479a908e76bded82150c39251d0c9c
|
179
|
-
IDE で使用する C# コンポーネント。プロジェクトの種類や設定に応じて、異なるバージョンのコンパイラを使用できます。
|
180
|
-
|
181
|
-
Common Azure Tools 1.10
|
182
|
-
Azure Mobile Services および Microsoft Azure Tools で使用する共通サービスを提供します。
|
183
|
-
|
184
|
-
Microsoft JVM Debugger 1.0
|
185
|
-
Provides support for connecting the Visual Studio debugger to JDWP compatible Java Virtual Machines
|
186
|
-
|
187
|
-
NuGet パッケージ マネージャー 6.4.0
|
188
|
-
Visual Studio 内の NuGet パッケージ マネージャー。NuGet の詳細については、https://docs.nuget.org/ にアクセスしてください
|
189
|
-
|
190
|
-
SQL Server Data Tools 17.0.62207.28050
|
191
|
-
Microsoft SQL Server Data Tools
|
192
|
-
|
193
|
-
TypeScript Tools 17.0.10921.2001
|
194
|
-
TypeScript Tools for Microsoft Visual Studio
|
195
|
-
|
196
|
-
Visual Basic ツール 4.4.0-6.22559.4+d7e8a398ef479a908e76bded82150c39251d0c9c
|
197
|
-
IDE で使用する Visual Basic コンポーネント。プロジェクトの種類や設定に応じて、異なるバージョンのコンパイラを使用できます。
|
198
|
-
|
199
|
-
Visual C++ for Cross Platform Mobile Development (Android) 17.0.33006.217
|
200
|
-
Visual C++ for Cross Platform Mobile Development (Android)
|
201
|
-
|
202
|
-
Visual F# Tools 17.4.0-beta.22512.4+525d5109e389341bb90b144c24e2ad1ceec91e7b
|
203
|
-
Microsoft Visual F# Tools
|
204
|
-
|
205
|
-
Visual Studio IntelliCode 2.2
|
206
|
-
Visual Studio 向けの AI 支援付き開発。
|
207
|
-
|
208
|
-
Visual Studio Tools for Unity 17.4.3.0
|
209
|
-
Visual Studio Tools for Unity
|
4
タイトルを変更しました。
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
PictureBoxをデザインフォームで宣言せずに、ソース内部で
|
1
|
+
PictureBoxをデザインフォームで宣言せずに、ソース内部で2次元配列を使って宣言し、宣言したPictureBoxをフォームで表示されるようにしたい。
|
test
CHANGED
File without changes
|
3
ビジュアルスタジオのバージョン情報を載せました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -158,3 +158,52 @@
|
|
158
158
|
### 補足情報(FW/ツールのバージョンなど)
|
159
159
|
|
160
160
|
Windows10 の ビジュアルスタジオ2022 の C# の Windows Forms アプリで自動生成してから、自分でソースコードを書いています。
|
161
|
+
Microsoft Visual Studio Community 2022
|
162
|
+
Version 17.4.1
|
163
|
+
VisualStudio.17.Release/17.4.1+33110.190
|
164
|
+
Microsoft .NET Framework
|
165
|
+
Version 4.8.04084
|
166
|
+
|
167
|
+
インストールされているバージョン:Community
|
168
|
+
|
169
|
+
Visual C++ 2022 00482-90000-00000-AA301
|
170
|
+
Microsoft Visual C++ 2022
|
171
|
+
|
172
|
+
ASP.NET and Web Tools 17.4.326.54890
|
173
|
+
ASP.NET and Web Tools
|
174
|
+
|
175
|
+
Azure App Service Tools v3.0.0 17.4.326.54890
|
176
|
+
Azure App Service Tools v3.0.0
|
177
|
+
|
178
|
+
C# ツール 4.4.0-6.22559.4+d7e8a398ef479a908e76bded82150c39251d0c9c
|
179
|
+
IDE で使用する C# コンポーネント。プロジェクトの種類や設定に応じて、異なるバージョンのコンパイラを使用できます。
|
180
|
+
|
181
|
+
Common Azure Tools 1.10
|
182
|
+
Azure Mobile Services および Microsoft Azure Tools で使用する共通サービスを提供します。
|
183
|
+
|
184
|
+
Microsoft JVM Debugger 1.0
|
185
|
+
Provides support for connecting the Visual Studio debugger to JDWP compatible Java Virtual Machines
|
186
|
+
|
187
|
+
NuGet パッケージ マネージャー 6.4.0
|
188
|
+
Visual Studio 内の NuGet パッケージ マネージャー。NuGet の詳細については、https://docs.nuget.org/ にアクセスしてください
|
189
|
+
|
190
|
+
SQL Server Data Tools 17.0.62207.28050
|
191
|
+
Microsoft SQL Server Data Tools
|
192
|
+
|
193
|
+
TypeScript Tools 17.0.10921.2001
|
194
|
+
TypeScript Tools for Microsoft Visual Studio
|
195
|
+
|
196
|
+
Visual Basic ツール 4.4.0-6.22559.4+d7e8a398ef479a908e76bded82150c39251d0c9c
|
197
|
+
IDE で使用する Visual Basic コンポーネント。プロジェクトの種類や設定に応じて、異なるバージョンのコンパイラを使用できます。
|
198
|
+
|
199
|
+
Visual C++ for Cross Platform Mobile Development (Android) 17.0.33006.217
|
200
|
+
Visual C++ for Cross Platform Mobile Development (Android)
|
201
|
+
|
202
|
+
Visual F# Tools 17.4.0-beta.22512.4+525d5109e389341bb90b144c24e2ad1ceec91e7b
|
203
|
+
Microsoft Visual F# Tools
|
204
|
+
|
205
|
+
Visual Studio IntelliCode 2.2
|
206
|
+
Visual Studio 向けの AI 支援付き開発。
|
207
|
+
|
208
|
+
Visual Studio Tools for Unity 17.4.3.0
|
209
|
+
Visual Studio Tools for Unity
|
2
質問にあったことを受けて修正しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -157,5 +157,4 @@
|
|
157
157
|
|
158
158
|
### 補足情報(FW/ツールのバージョンなど)
|
159
159
|
|
160
|
-
Windows10 ビジュアルスタジオ2022
|
160
|
+
Windows10 の ビジュアルスタジオ2022 の C# の Windows Forms アプリで自動生成してから、自分でソースコードを書いています。
|
161
|
-
|
1
タイトルに語弊がありました。失礼しました。
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
PictureBoxをデザインフォームで宣言せずに、多重配列
|
1
|
+
PictureBoxをデザインフォームで宣言せずに、ソース内部で多重配列を使って宣言しデザインフォームで表示されるようにしたい。
|
test
CHANGED
File without changes
|