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]) でよいでしょうか?
質問はやってみてから。