フォームからのコントロールの削除C#

マンジャグ

VS 2013でプログラムによってフォームに配置するいくつかのユーザーコントロールを作成しました。これらのコントロールは、時々削除して再作成する必要があります。コントロールを2つの異なる方法で削除してみました。1つは機能し、もう1つは機能しません。なぜそれが機能しないのかについて誰かが洞察を提供してくれることを願っています。

このバージョンは機能しません(4つのコントロールのうち2つしか見つかりません):

// delete user controls from the front panel
foreach (UserControl ctrl in this.Controls.OfType<StationControl>())
{
    this.Controls.Remove(ctrl);
}

このバージョンは機能します(4つのコントロールのうち4つが見つかります):

// delete user controls from the front panel
var uc_list = this.Controls.OfType<StationControl>().ToArray();
foreach (var ctrl in uc_list)
{
    this.Controls.Remove(ctrl);
}

タイプに一致するユーザーコントロールの数を問題なくカウントできます(例:

int controlCount = this.Controls.OfType<StationControl>().Count()

では、なぜ最初のforeachステートメントが完全に機能しないのでしょうか。

MasterXD

これは機能しますか?

foreach (UserControl ctrl in this.Controls.OfType<StationControl>())
{
    ctrl.Dispose();
    this.Controls.Remove(ctrl);
}

これがお役に立てば幸いです。

編集:

上記は正しく機能しません。これが機能するアプローチです。

while (this.Controls.OfType<StationControl>().Count() > 0)
{
    UserControl ctrl = this.Controls.OfType<StationControl>().First();

    ctrl.Dispose();
    this.Controls.Remove(ctrl);
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

ログインフォームC#からすべてのコントロールを制御する

分類Dev

c#ユーザーコントロールをフォームに追加してから削除する

分類Dev

コントロールと変数の状態をc#で1つのフォームから別のフォームにコピーします

分類Dev

クラスC#からフォームのコントロールにアクセスする方法

分類Dev

C#のフォームからC ++のコンソールプログラムに番号を送信する方法

分類Dev

メインフォームのユーザーコントロールからメディアプレーヤーボタンを作成するc#

分類Dev

WindowsフォームのWebブラウザコントロールから要素を削除する方法

分類Dev

symfony2コントローラーから埋め込みフォームのフォームフィールドを削除する方法

分類Dev

c#フォームからユーザーコントロールにキーダウンを渡す

分類Dev

子フォームは、C#のメインフォームのコントロールの背後で開かれました

分類Dev

サブフォームでメインフォームからのコントロールを使用する

分類Dev

C#の関数ハンドラーからフォームコントロールにアクセスする

分類Dev

他のクラスからのフォームにコントロールをアタッチしますc#

分類Dev

フォームのコントロールをC#のパネルにロードする

分類Dev

コントローラ内のフォルダからのcodeigniterフォームの投稿が機能しない

分類Dev

c#(Windowsフォーム)を使用して、Designerからカスタムユーザーコントロール内のコントロールプロパティにアクセスする方法はありますか?

分類Dev

フォームのフォーム。フォームコントロールの継承はありますか?

分類Dev

Windowsフォームコントロールからのコンソール入力

分類Dev

anglejsの別のコントローラーからのフォーム検証

分類Dev

別のフォームからのコントロールのオーバーライド

分類Dev

文字列からのExcelユーザーフォームコントロール名の値の参照(VBA)

分類Dev

C#フォーム-MouseClickは、フォームのフォーカスを失った後、実際のコントロールをクリックします

分類Dev

タブコントロール内でのWindowsフォームラベルの作成C#

分類Dev

HTMLからのリアクティブフォームコントロール上の角度ループ

分類Dev

C#カスタムコントロールのデフォルト値プロパティ

分類Dev

C#:フォームのチャートコントロールの背面の色を変更するにはどうすればよいですか?

分類Dev

Open Layers BingMapからデフォルトのコントロールを削除します

分類Dev

XamarinプラットフォームのC#からローカルリソースを参照する

分類Dev

C#でパネルをあるフォームから別のフォームにコピーする

Related 関連記事

  1. 1

    ログインフォームC#からすべてのコントロールを制御する

  2. 2

    c#ユーザーコントロールをフォームに追加してから削除する

  3. 3

    コントロールと変数の状態をc#で1つのフォームから別のフォームにコピーします

  4. 4

    クラスC#からフォームのコントロールにアクセスする方法

  5. 5

    C#のフォームからC ++のコンソールプログラムに番号を送信する方法

  6. 6

    メインフォームのユーザーコントロールからメディアプレーヤーボタンを作成するc#

  7. 7

    WindowsフォームのWebブラウザコントロールから要素を削除する方法

  8. 8

    symfony2コントローラーから埋め込みフォームのフォームフィールドを削除する方法

  9. 9

    c#フォームからユーザーコントロールにキーダウンを渡す

  10. 10

    子フォームは、C#のメインフォームのコントロールの背後で開かれました

  11. 11

    サブフォームでメインフォームからのコントロールを使用する

  12. 12

    C#の関数ハンドラーからフォームコントロールにアクセスする

  13. 13

    他のクラスからのフォームにコントロールをアタッチしますc#

  14. 14

    フォームのコントロールをC#のパネルにロードする

  15. 15

    コントローラ内のフォルダからのcodeigniterフォームの投稿が機能しない

  16. 16

    c#(Windowsフォーム)を使用して、Designerからカスタムユーザーコントロール内のコントロールプロパティにアクセスする方法はありますか?

  17. 17

    フォームのフォーム。フォームコントロールの継承はありますか?

  18. 18

    Windowsフォームコントロールからのコンソール入力

  19. 19

    anglejsの別のコントローラーからのフォーム検証

  20. 20

    別のフォームからのコントロールのオーバーライド

  21. 21

    文字列からのExcelユーザーフォームコントロール名の値の参照(VBA)

  22. 22

    C#フォーム-MouseClickは、フォームのフォーカスを失った後、実際のコントロールをクリックします

  23. 23

    タブコントロール内でのWindowsフォームラベルの作成C#

  24. 24

    HTMLからのリアクティブフォームコントロール上の角度ループ

  25. 25

    C#カスタムコントロールのデフォルト値プロパティ

  26. 26

    C#:フォームのチャートコントロールの背面の色を変更するにはどうすればよいですか?

  27. 27

    Open Layers BingMapからデフォルトのコントロールを削除します

  28. 28

    XamarinプラットフォームのC#からローカルリソースを参照する

  29. 29

    C#でパネルをあるフォームから別のフォームにコピーする

ホットタグ

アーカイブ