2012-04-11 8 views
1

私は窓のフォームのforループを使って多くのラジオボタンを作成しようとしています。私が直面している問題は、個々のラジオボタンごとに変数名を生成することです。もともと、私は0001、0002のような異なる数字を各ラジオボタンに追加するつもりです。しかし、変数名が文字列ではないので、私はそれを行うことができません。なにか提案を?Forループを使用して何百ものラジオボタンを作成するには?

+0

。そして、あなたのユーザーは、そのインターフェースに関して何も「使える」ものがないので、深刻なものになるでしょう。しかし、これは、あなたが記述する方法で簡単に行うことができます。 "変数名は文字列ではありません"とはどういう意味ですか?はい、そうです。ラジオボタンコントロールの 'Name'プロパティを探します。 –

+0

@CodyGray私はこれらのボタンをスクロールバー付きのパネルに配置する予定です。 – Marco

+0

@CodyGray私はこのような名前フィールドがあることを知っています - > radioButton1-> Name = L "radioButton1"; 。 L "radioButton1"は文字列ですが、(this-> radioButton1-> Name)のradioButton1は文字列ではありません。私はそれをどのように扱うべきですか? – Marco

答えて

2

は、配列を使用します。私はVC++を知らないよう

RadioButton[] rb = new RadioButton[100]; 
for (int i = 0; i < 100; i++) 
{ 
    rb[i] = new RadioButton(); 
    rb[i].Location = new Point(0, i * 20); 
    rb[i].Text = "Your text here"; 
    groupBox1.Controls.Add(rb[i]); 
    //etc. 
} 

これは、C#であるが、多分それはあなたを助けることができます。

+0

私が理解できないことの1つは、ラジオボタンのそれぞれをグループボックスに追加するには?私は、 "this-> groupBox1-> Controls-> Add(this-> radioButton4);"のようなステートメントがあるはずですが、ではない?あなたはfor-loopを使って作成しますが、本当に表示するものではありません。私は正しい?私はVC++にはとても新しいことを申し訳なく思っています。 – Marco

+0

@マルコ私は私の答えにそれを加えました。また、私自身がRadioButtonsを作成しなかった元の回答の間違いを修正しました。ここでも、これはC#です。 – ispiro

-1

これを試してみてください:あなたは、フォーム上のコントロールの「数百」の深刻なパフォーマンスの問題に実行するつもり

 var rb = new List<RadioButton>(); 
     bool Satisfied = false; int location =0; 

     while (!Satisfied) 
     { 
      rb.Add(new RadioButton() { Location = new Point(0, location * 20), Text = location.ToString() }); 
      location++; 
      Satisfied = rb.Count > 100 ? true : false; 
     } 


     foreach (object r in rb) 
     { 
      this.Controls.Add((RadioButton)r); 
     } 
関連する問題