C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 165 を表示中)
■95114 / )  仕様?誤使用?
□投稿者/ 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;
}
}
返信 編集キー/


管理者用

- Child Tree -