2008/07/03(Thu) 11:20:37 編集(投稿者)
> numericUpDownを使って値を指定した時、その値分だけComboBoxを表示したいと思っています。
> 以下のように書いて、ElementNo_old <= ElementNoの時はComboBoxがうまく表示されたのですが、
> numericUpDownの値を減らした時(ElementNo_old > ElementNoのとき)にうまくComboBoxが削除されません。
むずかしく考えすぎてない?
 private void btnAdd_Click(object sender, EventArgs e) {
   int o = panel2.Controls.Count; // 現在のラベル数
   int n = (int)nudLabels.Value;  // 目的のラベル数
   // 増えるとき
   if (o < n) {
     // o番〜n-1番を追加
     for ( int i = o; i < n; ++i ) {
       Label lbl = new Label();
       lbl.Name = string.Format("Label{0}",i);
       panel2.Controls.Add(lbl);
     }
   } else
   // 減るとき
   if (n < o) {
     // n番〜o-1番を削除
     for ( int i = n; i < o; ++i ) {
       Control ctl = panel2.Controls[string.Format("Label{0}",i)];
       panel2.Controls.Remove(ctl);
       ctl.Dispose();
     }
   }
 }
> this. Contorols. Remove(elements[i]) でよいでしょうか?
質問はやってみてから。