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

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

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

Re[1]: Labelを配列で使用したい!


(過去ログ 123 を表示中)

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

■73543 / inTopicNo.1)  Labelを配列で使用したい!
  
□投稿者/ tomo (3回)-(2014/10/09(Thu) 08:19:12)

分類:[C#] 

多数のLabelを使用したい時、配列としてLabelを使用するにはどうすればいいのでしょうか?

検索してみたのですが、なかなかうまくいきません

( Label ) ( this.Controls[ "Label" + index.ToString ( ) ] ).Text = "aiueo";

これだけではうまくいきませんでした

アドバイスお願いします
引用返信 編集キー/
■73545 / inTopicNo.2)  Re[1]: Labelを配列で使用したい!
□投稿者/ 魔界の仮面弁士 (138回)-(2014/10/09(Thu) 09:08:43)
No73543 (tomo さん) に返信
> 多数のLabelを使用したい時、配列としてLabelを使用するにはどうすればいいのでしょうか?
こういうことでしょうか。
http://jeanne.wankuma.com/tips/csharp/control/arraycontrol.html

配置はコードでもデザイナでも良いですが、
配列への格納は自身で行うことになります。


> ( Label ) ( this.Controls[ "Label" + index.ToString ( ) ] ).Text = "aiueo";
this.Controls[name] の場合、Form 上に貼った Label が対象となります。

他のコントロール(Panel 等)に貼った Label を拾う場合には、
panel1.Controls[name] のように、親コントロールの Controls から探します。

もし、他のコントロールも含めて探したいのであれば、.Controls.Find() を利用してみて下さい。
引用返信 編集キー/
■73546 / inTopicNo.3)  Re[1]: Labelを配列で使用したい!
□投稿者/ Hongliang (241回)-(2014/10/09(Thu) 09:11:51)
> ( Label ) ( this.Controls[ "Label" + index.ToString ( ) ] ).Text = "aiueo";
かっこの順序がめちゃくちゃです。この式だと
( this.Controls[ "Label" + index.ToString ( ) ] ).Text
をLabelにキャストするという処理になっています。String型であるTextをLabelにキャストすることは当然できません。
複数行に分けた方が見通しが良くなると思いますよ。

Control ctrl = this.Controls["Label" + index.ToString()];
Label label = (Label)ctrl;
label.Text = "aiueo";

// TextプロパティだけならControl型が持ってるのでLabel型へのキャストは不要ですが。
引用返信 編集キー/


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

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -