□投稿者/ chobi (3回)-(2020/06/24(Wed) 11:18:26)
|
分類:[C#]
* 開発ツール Microsoft Visual Studio Express 2017 for Windows Desktop Version 15.9.23 VisualStudio.15.Release/15.9.23+28307.1146 Microsoft .NET Framework Version 4.8.03752 * .NET Framewoek 4.6.1 * C# * Windows10 64bit
いつもお世話になっております。 panelに張り付けたコントロール(Name==AccountElement) をチェックが入っていたら消していくプログラムを作っています。 以下のようにforeachで列挙しながらチェック、削除していますが、 削除対象が連続すると2個目が列挙されないという現象があります。 削除しているので、削除対象controlのインッデクスが一つ減算されるのが 理由だと思いますが、使いにくいですよね・・・・ 皆さんどうしているのでしょうか?
int RemoveCnt = 0; foreach (Control ctr in Controls) { if (ctr.Name == "AccountElement") { AccountElement ae = (AccountElement)ctr; if (ae.Checked) { Controls.Remove(ctr); //++RemoveCnt; } //ae.Top -= ae.Height * RemoveCnt; } }
|
|