[解決済み] Windowsフォームの特定のタイプ(ボタン/テキストボックス)の子コントロールをすべて取得する方法は?
2022-07-04 16:55:03
質問
私は、フォーム上のタイプxのすべてのコントロールを取得する必要があります。私は過去に一度、このようなものを使用するコードを見たことがあると確信しています。
dim ctrls() as Control
ctrls = Me.Controls(GetType(TextBox))
再帰的な関数を使用して、子供を得るすべてのコントロールを反復することができることを知っています。 もっと簡単な、あるいはもっとわかりやすい、次のようなものはないでしょうか?
Dim Ctrls = From ctrl In Me.Controls Where ctrl.GetType Is Textbox
どのように解決するのですか?
ここにあなたのための別のオプションがあります。私はサンプルアプリケーションを作成することによってそれをテストし、私はその後、最初のGroupBoxの中にGroupBoxとGroupBoxを入れました。ネストされたGroupBoxの中に、3つのTextBoxコントロールとボタンを置きました。これは私が使用したコードです(さらに、あなたが探していた再帰を含む)。
public IEnumerable<Control> GetAll(Control control,Type type)
{
var controls = control.Controls.Cast<Control>();
return controls.SelectMany(ctrl => GetAll(ctrl,type))
.Concat(controls)
.Where(c => c.GetType() == type);
}
フォームロードイベントでテストするために、最初のGroupBox内のすべてのコントロールのカウントが必要でした。
private void Form1_Load(object sender, EventArgs e)
{
var c = GetAll(this,typeof(TextBox));
MessageBox.Show("Total Controls: " + c.Count());
}
そして、それは毎回適切なカウントを返しました。)
関連
-
[解決済み】ASP.NET Core Dependency Injectionのエラーです。アクティブ化しようとしているときに、タイプのサービスを解決できません。
-
[解決済み】プロジェクトビルド時のエラー。エディタでスクリプトにコンパイルエラーがあるため、Playerのビルドにエラーが発生する
-
[解決済み] DBNullから他の型にオブジェクトをキャストすることができない
-
[解決済み】取り消せないメンバはメソッドのように使えない?
-
[解決済み】「namespace」なのに「type」のように使われる。
-
VSでscanfエラーを恒久的に解決するには、ソースファイルを作成し、自動的に#define _CRT_SECURE_NO_WARNINGS 1を追加してください。
-
[解決済み] 汎用クラスやメソッドのメンバからTの型を取得する方法
-
[解決済み] Windowsフォームアプリケーションで、アプリケーションの設定を保存するにはどうすればよいですか?
-
[解決済み] Windowsフォームのラジオボタンをグループ化するには?
-
[解決済み】Windows Forms フォームのサイズ変更を無効にする。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】「未割り当てのローカル変数を使用」とはどういう意味ですか?
-
[解決済み】Ajax処理で「無効なJSONプリミティブ」と表示される件
-
[解決済み] [Entity Framework 4.1でエンティティに関連オブジェクトを追加する際に、エンティティオブジェクトをIEntityChangeTracker.の複数のインスタンスから参照できない。
-
[解決済み】Unity3DでOnTriggerEnterが動作しない件
-
[解決済み】クロススレッド操作が有効でない。作成されたスレッド以外のスレッドからアクセスされたコントロール
-
[解決済み】Moqを使用してメソッド呼び出しを検証する
-
[解決済み】値をNULLにすることはできません。パラメータ名:source
-
[解決済み】2年前のMSDateを把握する【クローズド
-
[解決済み】ユーザー設定値を別のユーザー設定値で設定する
-
[解決済み】FluentとQuery Expression - どちらか一方にメリットがあるのでしょうか?