回答編集履歴

3

のの

2022/09/22 11:27

投稿

TN8001
TN8001

スコア9326

test CHANGED
@@ -1,7 +1,7 @@
1
1
  「多数の`TextBox`に値をどう入れたらいいのか」って話ですよね?
2
2
 
3
3
  よく↓みたいなことがしたい(Unityで多い)って質問があります(もちろんできませんよ^^;
4
- ```C#
4
+ ```cs
5
5
  for(int i = 1; i <= 64; i++)
6
6
  {
7
7
  ("txtBox" + i).Text = "hogehoge";
@@ -11,8 +11,8 @@
11
11
  「配列かなんかを使いましょう」って回答になるわけですが、例がないとイメージがわかないでしょうからこんな雰囲気という例です。
12
12
  64個はだいぶ多いので作成もforでやりたいところですが、もう置いてあるのでしょうから探してくる実装です。
13
13
 
14
- .NET 6.0です
14
+ .NET 6.0です^^
15
- ```C#
15
+ ```cs
16
16
  using System;
17
17
  using System.Drawing;
18
18
  using System.Linq;
@@ -97,22 +97,22 @@
97
97
 
98
98
  ---
99
99
 
100
- 編集の通知が来なくて気が付くのが遅れました。
100
+ 編集の通知が来なくて気が付くのが遅れました。
101
101
 
102
- ```C#
102
+ ```cs
103
103
  counter++;
104
104
  txtBoxes = new TextBox[counter];
105
105
  ```
106
106
  ここは明らかにおかしいです。
107
107
 
108
- ```C#
108
+ ```cs
109
109
  txtBoxes = new TextBox[1];
110
110
  txtBoxes = new TextBox[2];
111
111
  // ・・・
112
112
  ```
113
113
  と箱(配列)だけ用意して中身(`TextBox`)を入れていませんし、何度も無駄に箱だけ作っています。
114
114
 
115
- ```C#
115
+ ```cs
116
116
  public Form1()
117
117
  {
118
118
  InitializeComponent();
@@ -149,13 +149,13 @@
149
149
  こんな感じで箱は1回だけ64個で作り、中身を`counter`番目に入れます。
150
150
 
151
151
 
152
- ```C#
152
+ ```cs
153
153
  AddRecievedDataDelegate add = new AddRecievedDataDelegate(AddRecievedData);
154
154
  this.Invoke(add, data);
155
155
  ```
156
156
  ここも、
157
157
 
158
- ```C#
158
+ ```cs
159
159
  this.Invoke(AddRecievedData, data);
160
160
  ```
161
161
  こうでいいはずです。

2

編集をうけて

2022/04/24 21:49

投稿

TN8001
TN8001

スコア9326

test CHANGED
@@ -94,3 +94,68 @@
94
94
  コピペコピペで増殖したにしても、やけに多い気がします(本当に古い記事も多いですが^^;
95
95
 
96
96
  [C# SerialPort DataReceived - Google 検索](https://www.google.co.jp/search?q=C%23+SerialPort+DataReceived)
97
+
98
+ ---
99
+
100
+ 編集のの通知が来なくて気が付くのが遅れました。
101
+
102
+ ```C#
103
+ counter++;
104
+ txtBoxes = new TextBox[counter];
105
+ ```
106
+ ここは明らかにおかしいです。
107
+
108
+ ```C#
109
+ txtBoxes = new TextBox[1];
110
+ txtBoxes = new TextBox[2];
111
+ // ・・・
112
+ ```
113
+ と箱(配列)だけ用意して中身(`TextBox`)を入れていませんし、何度も無駄に箱だけ作っています。
114
+
115
+ ```C#
116
+ public Form1()
117
+ {
118
+ InitializeComponent();
119
+
120
+ int width = 100;
121
+ int counter = 0;
122
+
123
+ txtBoxes = new TextBox[8 * 8];
124
+ for (var i = 0; i < 8; i++)
125
+ {
126
+ for (var j = 0; j < 8; j++)
127
+ {
128
+ txtBoxes[counter] = new TextBox
129
+ {
130
+ Name = $"textBox{counter + 1}",
131
+ Location = new Point(j * width + 70, i * 28 + 30),
132
+ Size = new Size(20, 5),
133
+ Parent = this,
134
+ };
135
+ new Label
136
+ {
137
+ Name = $"testPIXCEL{i + 1}",
138
+ Text = $"PIXECL{counter + 1}",
139
+ Location = new Point(j * width + 6, i * 28 + 30),
140
+ Size = new Size(60, 15),
141
+ Parent = this,
142
+ };
143
+
144
+ counter++;
145
+ }
146
+ }
147
+ }
148
+ ```
149
+ こんな感じで箱は1回だけ64個で作り、中身を`counter`番目に入れます。
150
+
151
+
152
+ ```C#
153
+ AddRecievedDataDelegate add = new AddRecievedDataDelegate(AddRecievedData);
154
+ this.Invoke(add, data);
155
+ ```
156
+ ここも、
157
+
158
+ ```C#
159
+ this.Invoke(AddRecievedData, data);
160
+ ```
161
+ こうでいいはずです。

1

.NET 6.0

2022/04/23 01:04

投稿

TN8001
TN8001

スコア9326

test CHANGED
@@ -10,6 +10,8 @@
10
10
 
11
11
  「配列かなんかを使いましょう」って回答になるわけですが、例がないとイメージがわかないでしょうからこんな雰囲気という例です。
12
12
  64個はだいぶ多いので作成もforでやりたいところですが、もう置いてあるのでしょうから探してくる実装です。
13
+
14
+ .NET 6.0です。
13
15
  ```C#
14
16
  using System;
15
17
  using System.Drawing;