0

Visual C#2008Expressエディションを使用しています。

設計時に
、TabControl [myTabControl]を追加したフォーム[myMainForm]が
あり、myTabControlに単一のtabPage [myTabPage]が
あり、このtabPageにtableLayoutPanel [myTableLayoutPanel]を追加し、myTablelayoutPanelに追加した
場合10個のボタン(button1、button2、button3など)を追加しました。

実行時に、myTableLayoutPanelに追加した10個のボタンすべてへの参照をデータ構造に入力します。ボタンへの参照を可能な限り単純で最も効率的な方法で操作したいと思います。配列と組み合わせたfor...nextループは、問題に取り組むための最良のアプローチですか?

プログラムでボタンをパネルに追加できることはわかっていますが、そうする場合は、コードの視覚的な設定も微調整する必要があります。コードをできるだけクリーンでシンプルに保つために、これは避けたいと思います。

誰かが私をこれに進めるために数行のコードを投稿することができれば、私は感謝するでしょう。

これをお読みいただきありがとうございます。ハッピーコーディング。

よろしく、

4

1 に答える 1

1

C#3(VS 2008)では、配列初期化構文を使用してコンパイル時配列を設定できます。

var buttons = new [] { button1, button2, ... button10 };

または、すべてのフィールドを反映して、次の行に沿ってボタンをフィルタリングすることもできます。

using System.Linq;

// tlp being your TablelayoutPanel instance
var buttons = tlp.GetType().GetFields().Select(f => f.GetValue(tlp)).Where(v => v is Button).ToArray();

これにより、すべてのボタンが取得されます。これらのフィールドをフィルターで除外する場合は、実際に必要なボタンであることを示す既知の命名パターンを除いて、Where(f => SomeTestOn(f.Name))フィルターを追加することをお勧めします。Select

于 2009-11-12T00:33:02.557 に答える