ホームページ >バックエンド開発 >C++ >Windows フォーム アプリケーションで、複数の連続して名前が付けられたテキストボックスを効率的に繰り返して値を割り当てるにはどうすればよいですか?

Windows フォーム アプリケーションで、複数の連続して名前が付けられたテキストボックスを効率的に繰り返して値を割り当てるにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2025-01-07 13:57:44748ブラウズ

How Can I Efficiently Iterate Through and Assign Values to Multiple Sequentially Named Textboxes in a Windows Forms Application?

複数のテキストボックスの反復

Windows フォーム アプリケーション内で、それぞれに連続した名前を持つ 37 個のテキストボックスをループするという課題が発生しました。 「DateTextBox」という名前の後に数値の接尾辞が続きます。タスクには、ループ カウンター 'i' に基づいてこれらのテキスト ボックスに値を割り当てることが含まれます。

再帰的コントロールの取得

これに効果的に対処するには、次のような拡張メソッドを利用します。特定のタイプのすべてのコントロールとサブコントロールを再帰的に取得します。そのコードは次のとおりです:

public static IEnumerable<TControl> GetChildControls<TControl>(this Control control) where TControl : Control
{
    var children = (control.Controls != null) ? control.Controls.OfType<TControl>() : Enumerable.Empty<TControl>();
    return children.SelectMany(c => GetChildControls<TControl>(c)).Concat(children);
}

実装

このメソッドを利用するには、フォーム内に存在するすべてのテキストボックスを取得できます:

var allTextBoxes = this.GetChildControls<TextBox>();

テキストボックスのリストを取得したら、各ボックスをループして、テキストボックスに基づいて適切な値を割り当てることができます。 'i' カウンタ:

foreach (TextBox tb in allTextBoxes)
{
    tb.Text = ...;
}

このアプローチを実装すると、ネストされたパネル内に配置されている場合でも、多数のテキストボックスを効率的に繰り返し、値を動的に割り当てることができます。

以上がWindows フォーム アプリケーションで、複数の連続して名前が付けられたテキストボックスを効率的に繰り返して値を割り当てるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。