C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

numericupdown1~10のValueを、取得する

[トピック内 7 記事 (1 - 7 表示)]  << 0 >>

■93717 / inTopicNo.1)  numericupdown1~10のValueを、取得する
  
□投稿者/ tsukasa (1回)-(2020/01/19(Sun) 15:37:44)

分類:[C/C++] 

分類[C++]

初心者で、numericUpDown1~10のValueを、ループ処理にて取得したいのです。
以下のように作成しましたが、うまく取得できません。
お詳しい方、ご教授ください。

for (int i = 0; i <= 10; i++)
{
// numericUpDown1~10 のValueを、配列に格納する
String^ name = "numBox" + Convert::ToString(i);

NumericUpDown^ buf = ((NumericUpDown^)this->Controls[name]);

box[i] = Convert::ToUInt16(buf->Value);
}

this->Controls[name]にて参照しているアドレスが未定義のようで、
NULL参照の例外アクセスエラーになってしまいます。

引用返信 編集キー/
■93718 / inTopicNo.2)  Re[1]: numericupdown1~10のValueを、取得する
□投稿者/ 774RR (772回)-(2020/01/19(Sun) 17:38:18)
ループが0から開始してるようだけどそれは期待通り?
引用返信 編集キー/
■93719 / inTopicNo.3)  Re[2]: numericupdown1~10のValueを、取得する
□投稿者/ tsukasa (3回)-(2020/01/19(Sun) 18:30:18)
No93718 (774RR さん) に返信
> ループが0から開始してるようだけどそれは期待通り?

返信ありがとうございます。
すいません。私の記述ミスです。

> numericUpDown1~10のValueを、ループ処理にて取得したいのです。
&#10145;numericUpDown0~ 

numBox0->Value〜取得したいです。
引用返信 編集キー/
■93723 / inTopicNo.4)  Re[3]: numericupdown1~10のValueを、取得する
□投稿者/ 魔界の仮面弁士 (2547回)-(2020/01/20(Mon) 02:51:09)
No93719 (tsukasa さん) に返信
>>numericUpDown1~10のValueを、ループ処理にて取得したいのです。
> →numericUpDown0~ 
> numBox0->Value〜取得したいです。

numericUpDown は、Form 上に直接載せられていますか?

Form 上にあるなら this->Controls で良いですが、
たとえば panel1 の上にあるなら、panel1->Controls から探る必要があるでしょう。

あるいは Controls の Find メソッドを使って、子孫コントロールも辿るようにするとか。
引用返信 編集キー/
■93724 / inTopicNo.5)  Re[1]: numericupdown1~10のValueを、取得する
□投稿者/ Azulean (1130回)-(2020/01/20(Mon) 10:16:46)
No93717 (tsukasa さん) に返信
> 初心者で、numericUpDown1~10のValueを、ループ処理にて取得したいのです。

こういうようとであれば、自前の配列を用意した方が楽かもしれませんね。

array<NumericUpDown^>^ numerics = new array<NumericUpDown^>[10] {
  numBox1, numBox2, /.. 省略 ../, numBox9, numBox10
};

for (int i = 0; i < 10; i++)
{
  box[i] = Convert::ToUInt16(numerics[i]->Value);
}

事前に配列に設定する理由としては、Controls のアクセスだとデザイナでレイアウトを変更したときに
親子関係が変わって壊れることが多いからです。

// C++/CLI で久しく書いていないので、構文エラーがあったらすみません。

引用返信 編集キー/
■93725 / inTopicNo.6)  Re[2]: numericupdown1~10のValueを、取得する
□投稿者/ 774RR (773回)-(2020/01/20(Mon) 12:37:29)
> 自前の配列を用意した方が楽かもしれませんね。
オイラもこれに1票。

しょせん GUI イベントハンドラなのでここで1クロックを争う必要はまったくないんだけど
動的に GUI 部品を名前から探すのは遅いと思うっす。

ところでオイラにはいまだにこの質問が
- numericUpDown0 から numericUpDown9 の10個なのか
- numericUpDown0 から numericUpDown10 の11個なのか
- それ以外なのか
微妙に不明っす。まあいいけど。
引用返信 編集キー/
■93726 / inTopicNo.7)  Re[3]: numericupdown1~10のValueを、取得する
□投稿者/ tsukasa (4回)-(2020/01/20(Mon) 19:04:06)
No93725 (774RR さん) に返信
>>自前の配列を用意した方が楽かもしれませんね。
> オイラもこれに1票。
>
> しょせん GUI イベントハンドラなのでここで1クロックを争う必要はまったくないんだけど
> 動的に GUI 部品を名前から探すのは遅いと思うっす。
>
> ところでオイラにはいまだにこの質問が
> - numericUpDown0 から numericUpDown9 の10個なのか
> - numericUpDown0 から numericUpDown10 の11個なのか
> - それ以外なのか
> 微妙に不明っす。まあいいけど。

ありがとうございます。上記コードで解決しました。
解決済み
引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ