首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> C# >> 關於C#

C# 動態建立控制項陣列:以 Button 矩陣為例

     編輯:關於C#

應用場景

計算機數字鍵盤、井字棋棋盤等介面包含多個功能相同的控制項。逐一手寫建立程式碼冗長且難維護,控制項陣列為最佳解決方案。

Button 陣列實作範例

Button[] buttons = new Button[9];

private void CreateButtonArray() {
    for (int i = 0; i < 9; i++) {
        buttons[i] = new Button(); // 必須實例化每個元素
        buttons[i].Location = new Point(100 + 50 * (i % 3), 100 + 50 * (i / 3));
        buttons[i].Name = "btnTest";
        buttons[i].Size = new Size(48, 48);
        buttons[i].Text = i.ToString();
        buttons[i].Click += new EventHandler(Buttons_Click); // 統一事件處理
        this.Controls.Add(buttons[i]); // 加入表單顯示
    }
}

private void Buttons_Click(object sender, EventArgs e) {
    Button clicked = (Button)sender;
    MessageBox.Show(clicked.Text + " was clicked!");
    // 透過 sender 判斷觸發事件的控制項
}

private void Form1_Load(object sender, EventArgs e) {
    CreateButtonArray();
}

核心概念解析

  • 實例化不可少:陣列宣告後每個元素皆為 null,迴圈中必須 new Button()。
  • 位置計算公式化:利用模運算與整數除法自動排列網格,特殊按鈕(如計算機的 0)可用 if 單獨處理。
  • 統一事件處理:所有按鈕共用同一事件處理器,透過 sender 參數識別來源控制項。

進階應用

可將控制項陣列封裝為自訂類別,擴充功能(如狀態管理、樣式統一),甚至建立自訂控制項陣列類別支援更複雜邏輯。

學習建議

觀察「Windows Form 設計器產生的程式碼」可快速理解 .NET 建立與呈現控制項的流程,進而靈活運用陣列技巧。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved