• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:これ、Forループで出来ますか???)

Forループを使用して100行のLabel.Textを展開する方法

このQ&Aのポイント
  • Formに100個のLabelを貼り付け、そのTextに毎日のファイルから読み込まれたデータを展開したいです。
  • 現在は100行のコードでTextを1行ずつセットしていますが、効率的な方法はないでしょうか?
  • Forループなどを使用して、100行のコードを簡潔にまとめる方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

FormのControlsプロパティを使えば可能ですよ for(int n=0; n<100; n++) {   string ss = string.Format("label{0}",n+1);   Controls[ss].Text = TextMass[n]; } といった具合です

sato-may
質問者

お礼

ありがとうございました 一発OKでした 今後とも宜しくご指導の程お願い申し上げます なお本件と関連した事項を更に追加質問させて頂きましたので、こちらもぜひお教えください ☆ panel内に貼り付けたコントロールの使用法???   http://questionbox.jp.msn.com/qa7256302.html

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • forループを使うと上書きされてしまう・・・・

    NetBeansを使ってJAVAでツールを作っているのですが、 ループ作業でうまくいかないところがあります。 内容は テキストフィールドで入力された項目を、 全て別の画面で表示するというものです。 テキストフィールドを20個設置して、item配列をgetText()で作って それをforループで上から順番に表示しようとしているのですが、 結果を表示すると最後の一つしか表示されません。 ループが回る度に上書きされて最後しか残らないのだと思うのですが 全部表示する方法はないでしょうか? ↓ String[] item = new String[20];  //配列にまとめてます item[0] = item1.getText(); item[1] = item2.getText(); item[2] = item3.getText(); item[3] = item4.getText();  ・  ・省略  ・ item[18] = item19.getText(); item[19] = item20.getText(); for (int i=0; i<21; i++)        //ループで上から20項目表示しようとしてます items.setText(item[i] + "\n"); どんなことでもいいので情報をもらえると助かります。

    • ベストアンサー
    • Java
  • C# Form処理

    Form1とForm3からForm2を表示させれるようにして,どちらかのフォームのコントロールをクリック したらform2が立ち上がりformに応じた処理を行いたいのですが,下記のコードではエラーとなって 動きません int Pin1 = f1.butt1; int Pin3 = f3.butt3; if (Pin1 == 1) { int h = f1.but; for (int hj = 1; hj < 43; hj++) { if (h == hj) { //Labelに文字を入力。 string Memo = "label" + (hj + 93); string Hd = "label" + (hj + 51); Label f1_Memo = (Label)f1.Controls[Memo]; f1_Memo.Text = this.textBox1.Text; Label f1_Hd = (Label)f1.Controls[Hd]; f1_Hd.Text = this.textBox2.Text; } } } else if (Pin3 == 1) { int h3 = f3.but3; for (int hj3 = 1; hj3 < 43; hj3++) { if (h3 == hj3) { //Labelに文字を入力。 string Memo = "label" + (hj3 + 744); MessageBox.Show(Memo.ToString()); Label f3_Memo = (Label)f3.Controls[Memo]; f3_Memo.Text = this.textBox1.Text; } } } Form1のコントロールであれば上のforループ,Form3であれば下のforループで処理するように考えております.Form1でform3を開くコントロールを選択した場合上記コードのbutt1は0になるように しているつもりです. エラーは NullReferenceExceptionがハンドルされませんでした. オブジェクト インスタンスの作成には new キーワードを使用します。 何がいけなくてどう対処すればよろしいのでしょうか? ご教授よろしくお願いいたします.

  • forループに慣れるには

    初めまして。 今資格を取ろうと思い独学でJavaを勉強してるんですが、 つまらない部分でつまずいています。 それは少々複雑なfor等のループです。 変数を追っていくうちにこんがらがってしまい、 変数の正しい値を見失ってしまいます。 例えば… Loop: for(int i = 0; i<5; i++) { for(int j =0; j<5; j++) { if(i==j) continue Loop; System.out.println("i = " +i+ "j = " +j); if(i > 3) break Loop; } } や、 int i,j; for(i = 0, j = 0; i<3;) { if(i++ == 2 || j++ == 2) break; } System.out.println(i); System.out.println(j); の様なループです。 試験範囲は大方勉強出来てるんですが まぬけな事にループがイマイチ理解出来てなくて(恥) 皆さんはどうやって慣れてこられましたか? つまらない質問ですが何か良いコツやアドバイスがあれば よろしくお願いします。

  • for 3ループについて教えて

    for 3ループについて教えて * ** *** **** * ** *** **** * ** *** **** と表示させたいのですが、 #include<stdio.h> int main(void) { int i,j,k; for(i=1; i<=4; i++) { for(j=1; j<=i; j++){ // for(k=1; k<=3; k+=i){ } printf("*"); } printf("\n"); } return 0; } * ** *** **** このように表示されてしまいます。//の所が違うなと思います。が、分かりそうで分かりません。 もし、分かるかたがいましたら、教えてください。 よろしくおねがいします。

  • forループの中での初期化

    class Foo{   public static void main(String args[]){     int x=10;     for(int i=0;i<5;i++){       System.out.print(x+i);     }     System.out.print("\n"+i);   } } このプログラムはコンパイルエラーが出ます。 iがforループの中で宣言されていてその外では無効だからです。 そこで class Foo{   public static void main(String args[]){     int x=10;     int i;     for(i=0;i<5;i++){       System.out.print(x+i);     }     System.out.print("\n i="+i);   } } のようにしてみました。 i=5と出ました。 ふと、iは確かに宣言されているけど、初期化はforの中でしかされていないのになぜコンパイルエラーにならなかったんだろう??、と思ってしまいました。 おかしくないでしょうか?

    • ベストアンサー
    • Java
  • ループの後にTrueになる不思議

    下記のコードを実行してみます。 Private Sub Command1_Click() ProgressBar1.Visible = True Label1.Visible = True ProgressBar1.Max = Val(Text1.Text) For i = 1 To Val(Text1.Text) Text1.Text = i ProgressBar1.Value = i Next i MsgBox "終了しました。" ProgressBar1.Visible = False Label1.Visible = False End Sub 「ProgressBar1」はループに入る前に「Visible = True」になります。 「Label1」はループ終了後に「Visible = True」になります。 「Text1.Text = i」はループ終了後に表示されます。 本来は、「Label1」はループに入る前に「Visible = True」にして、「Text1.Text = i」をループ中に表示させたいのですが、できません。 どこかコードが間違っているのでしょうか。

  • ループが無駄に複雑な気が…

    以下は私が作成したプログラムで、 1.form[4][4][4]の三次元配列に0~32のランダムな正の整数を入れる 2.このランダムな数値の同じものは2つまで 3.form[i][j][0]~form[i][j][3]には同じ数値が入ってはいけない という条件を考えて作成したのですが、無駄に複雑になった気がします。 このプログラムはform[i][j][0]~form[i][j][3]が入らないように、数値が被ったら最初からやり直しにしています。 この作り方だと、これ入れないと最後の1個が被ってしまうものだったら無限ループが起きてしまうので…。 この無駄に複雑になってしまった気がするプログラムを、もっとシンプルに出来ないでしょうか? import java.util.Random; public class Loop { public static void main(String[] args){ int num; int[] check=new int [32]; int[][][] form=new int[4][4][4]; Random rand=new Random(); int i=0,j=0,k=0; for(i=0;i<32;i++) check[i]=0; i=-1; while(true){ while(true){ while(i<3){ num=rand.nextInt(32); if(check[num]!=2){ i++; form[i][j][k]=num; System.out.println(i+" "+j+" "+k+" "+form[i][j][k]); check[num]++; if(0<k){ for(int l=0;l<k;l++){ if(form[i][j][k]==form[i][j][l]){//同じだったらループのやり直し for(int m=0;m<32;m++) check[m]=0; i=-1; j=0; k=0; } } } } } if(j==3) break; num=rand.nextInt(32); if(check[num]!=2){ i=0; j++; form[i][j][k]=num; System.out.println(i+" "+j+" "+k+" "+form[i][j][k]); check[num]++; } } if(k==3) break; num=rand.nextInt(32); if(check[num]!=2){ i=0; j=0; k++; form[i][j][k]=num; System.out.println(i+" "+j+" "+k+" "+form[i][j][k]); check[num]++; } } for(i=0;i<4;i++){ for(j=0;j<4;j++){ for(k=0;k<4;k++){ System.out.println(k+" "+j+" "+i+" "+form[k][j][i]); } } } System.out.println("end"); System.exit(0); } }

    • ベストアンサー
    • Java
  • 3次元配列のループによる比較の回数を減らす

    以下は正の整数が入った3次元配列form[30][20][8]で、中身が一致している2カ所に-1を代入してループを抜けるというプログラムの一部分なんですが、無駄なループを減らすにはどういった変更をすればいいでしょうか? form[30][20][8]は変更しない方向でお願いします。 check: for(int i=0;i<30;i++){ for(int j=0;j<20;j++){ for(int k=0;k<8;k++){ for(int l=0;l<30;l++){ for(int m=0;m<20;m++){ for(int n=0;n<8;n++){ if(form[i][j][k]==form[l][m][n]&&!(i==l&&j==m&&k==n)form[i][j][k]!=-1) count++; form[i][j][k]=-1; form[l][m][n]=-1; break check; } } } } } } }

    • ベストアンサー
    • Java
  • Java初歩。ループ問1~6の内1・2

    コンパイルの環境はあります。 『問題は、全て、 「forループ」を使って記述しなければなりません。 そして、 ループは、「forループのみ」と、限定されています。 (1)~(2)は、他にどんなやりかたがあるのか興味がありまして、質問させて頂きました。 (3)からは、ずっと試しているのですが、全くできません… (1) 100、50、200、150、300を管理している配列を作成し、その合計を実行結果のように 出力したいです。どう組めばよいのでしょうか? (1)の実行結果 800 (2) 100、50、200、150、300を管理している配列を作成し、その平均値を 実行結果のように出力する為にはどのようにくんだらよいのでしょうか?。 (2)実行結果 160 例えば、(1)はこんな感じでしょうか? class exercise_4_1 { public static void main(String args[]){ int a[] = new int[5]; a[0] = 100; a[1] = 50; a[2] = 200; a[3] = 150; a[4] = 300; int z = 0; for(int i = 0;i < args[0].length(); i++){ z += a[i]; } System.out.println(z); } (1)~(6)問目までありますので、よろしくお願いします。

  • Java初歩。ループ問1~6の内3・4

    コンパイルの環境はあります。 『問題は、全て、 「forループ」を使って記述しなければなりません。 そして、 ループは、「forループのみ」と、限定されています。 (1)~(2)は、他にどんなやりかたがあるのか興味がありまして、質問させて頂きました。 (3)からは、ずっと試しているのですが、全くできません…悔しいです。。 (3) 100、50、200、150、300を管理している配列を作成し、合計値を算出 した上で、それぞれ値が合計に占める割合をパーセントを用いて実行結果のように出力する為には どのようにプログラムをくめばよいのでしょうか? (3)実行結果 12.5% 6.25% 25.0% 18.75% 37.5% (4) 問3を修正して、割合だけを表示するのではなく、元の数と最大値である旨も 表示するようにしたいです。どのようにくめばよいのでしょうか? 問4の実行結果     100:12.5%     50:6.25%     200:25.0%     150:18.75% 最大値>300:37.5% ちなみに、とまっている(3)は、こんな感じかなぁとやったんですが、だめでした。。。↓ class exercise_4_3 { public static void main(String args[]){ int a[] = new int[5]; a[0] = 100; a[1] = 50; a[2] = 200; a[3] = 150; a[4] = 300; int z = 0; for(int i = 0;i < 5;i ++){ z += a[i]; } int x = 0; for(int i = 0;i< 5;i ++){ x = i / z * 100; System.out.print(x + '%'); System.out.println(""); } } } (5)(6)をありますので、よろしくお願いいたします。

    • ベストアンサー
    • Java