tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルテキストボックス配列
記事No10461
投稿日: 2011/03/10(Thu) 18:45
投稿者ダンボ
こんにちは。基本的なところでつまづいてしまいました。
下記のコードでRectsとRegionsは正しく要素がセットされたのにtxtColorsの要素は
全部Nothingでした。(txtColor1〜3はデザイナーでテキストボックスとして定義済み)
(Colors(i)も別途正しく定義済み)
テキストボックスは何故配列にできないんでしょう?

Dim Rects() As Rectangle = ({New Rectangle(0, 0, 27, 27), New Rectangle(27, 0, 27, 27), New Rectangle(27, 27, 27, 27), New Rectangle(0, 27, 27, 27)})
Dim Regions() As Region = ({New Region(Rects(0)), New Region(Rects(1)), New Region(Rects(2)), New Region(Rects(3))})
Dim txtColors() As TextBox = ({txtColor0, txtColor1, txtColor2, txtColor3})
txtColors(i).Text = Hex(Colors(i).ToArgb)

[ツリー表示へ]
タイトルRe: テキストボックス配列
記事No10463
投稿日: 2011/03/10(Thu) 21:33
投稿者魔界の仮面弁士
> 全部Nothingでした。(txtColor1〜3はデザイナーでテキストボックスとして定義済み)

txtColor1 が生成される前(InitializeComponentメソッドが呼ばれる前)に
それらの処理を行っていませんか?

[ツリー表示へ]
タイトルFW: テキストボックス配列
記事No10464
投稿日: 2011/03/10(Thu) 21:36
投稿者ダンボ
> テキストボックスは何故配列にできないんでしょう?

前掲コードに下記コードを付け加えたら(Form_Load)、設計どおりに動くようになりました。
  txtColors(0) = txtColor0
  txtColors(1) = txtColor1
  txtColors(2) = txtColor2
  txtColors(3) = txtColor3

◎テキストボックスでも配列にできる。

> Dim txtColors() As TextBox = ({txtColor0, txtColor1, txtColor2, txtColor3})

◎この宣言によりテキストボックスの配列は確保できるが「初期値の設定ができない」
何で?

[ツリー表示へ]
タイトルRe: FW: テキストボックス配列
記事No10465
投稿日: 2011/03/10(Thu) 21:46
投稿者魔界の仮面弁士
>> Dim txtColors() As TextBox = ({txtColor0, txtColor1, txtColor2, txtColor3})
VB2008 環境で試してみましたが、そもそも『({』の部分が
コンパイルエラーになりました。BC30201「式が必要です。」


丸括弧を外して、
   Dim txtColors1() As TextBox = {txtColor0, txtColor1, txtColor2, txtColor3}
であれば通りましたが、この場合、Nothing になるという現象は
再現できませんでした。

[ツリー表示へ]
タイトルテキストボックス配列【済】
記事No10466
投稿日: 2011/03/10(Thu) 21:58
投稿者ダンボ
魔界の仮面弁士さん、どうもありがとうございます。

確認の方法がわからないですが、動作原理からの考察とForm_Loadに代入文を
入れればうまく行ったことから魔界の仮面弁士さんのおっしゃるとおりの理由
だと確信します。

解決方法もよくわからないです。デザインコードに手を入れるかFormにNewメソッド
を追加してゴニョゴニョできるものかどうか。

Form_Loadで4行の代入文をいれるだけで解決するのでこれ以上追求しないことにします。

> ◎この宣言によりテキストボックスの配列は確保できるが「初期値の設定ができない」
→初期値は正しく設定したが、その初期値である右辺がNothingなだけ。

[ツリー表示へ]