[C# Form Tips] Tạo mảng Button tự động và xử lý sự kiện

Tạo mảng button tự động và sử lý sự kiện

Dùng vòng lặp tạo số button theo yêu cầu
Viết Hàm xử lý sự kiện chung vd Click và gọi sự kiện theo ID của button được gắn vào .tag




        public void TaoMangButton()
        {
            for (int i = 0; i < 10; i++)
            {
                //Khai báo một Button mới
                Button bt = new Button();

                //Cài đặt thuộc tính cho button
                bt.Name = "bt" + i;
                bt.Text = "Button" + "i";
                bt.Tag = i;
                //Tạo sự kiện cho button
                bt.Click += new EventHandler(Buttons_Click);
            }
        }

        private void Button_click(object sender, EventArgs e)
        {
            //Lấy id đã lưu ở bt.tag
            int id = (int)((Button)sender).Tag;
            //Hiển thị thông tin khi nhấn nút tương ứng
            MessageBox.Show("Bạn vừa nhấn nút " + id.ToString());

        }


Tạo mảng button 2 chiều


C# Tạo mảng button hai chiều và xử lý sự kiện
Giao diện



//Hàm tạo mảng button
        void CreateArrayButton()
        {
            int top = 0; //Giá  trị Location Top
            for (int i = 0; i < 10; i++)
            {
                int Left =0; //Giá trị Location Left
                for (int j = 0; j < 10; j++)
                {
                    //Tạo 1 button mới
                    Button bt = new Button();
                    //Thêm cài đặt cho button
                    bt.Name = "Button" + i+" "+ j;
                    bt.Text = string.Format("Button [{0},{1}]", i, j);
                    bt.Tag = string.Format ("[{0},{1}]", i, j);
                    bt.Size = new Size(50, 50);
                    bt.Left = Left += 50;
                    bt.Top = top;
                    bt.BackColor = Color.Green;
                    bt.ForeColor = Color.White;

                    //Tạo sự kiên cho button và gán tới hàm sử lý sự kiện
                    bt.Click += new EventHandler(bt_Click);
                    this.Controls.Add(bt);
                }
                top += 50;
            }
        }

        //Sự kiện click Button
        private void bt_Click (object sender, EventArgs e)
        {
            MessageBox.Show("Bạn đang nhấn nút " + ((Button)sender).Tag);
        }

//Tạo button khi load form
        private void Form1_Load(object sender, EventArgs e)
        {
            CreateArrayButton();
        }

    }


Tải Về Project "Tạo mảng button tự động"

http://adf.ly/voAp8

VIDEO TẠO MẢNG BUTTON TỰ ĐỘNG

[C# Form Tips] Tạo mảng Button tự động và xử lý sự kiện [C# Form Tips] Tạo mảng Button tự động và xử lý sự kiện Reviewed by Nguyen Nam on 12/05/2014 Rating: 5

8 nhận xét:

  1. em tạo 1 mảng các button động + 1 contextmenuStrip cho các button với 1 item con là hiển thị
    admin chỉ e cách khi chuột phải vào button chọn hiển thị thì nó Show ra các tên button[i] mà mình chọn với
    thanks !
    mail của em : scholesbg1992@gmail.com

    Trả lờiXóa
  2. Admin a chỉ giúp e với, e tạo ra được mảng textbox rồi giờ e muốn xem textbox.text của từng cái textbox thì làm sao a. E làm hoài mà không được

    Trả lờiXóa
    Trả lời
    1. Đoạn này " MessageBox.Show("Bạn đang nhấn nút " + ((Button)sender).Tag);"
      Sửa lại thành "((Button)sender).Text" là lấy được textbox.text của nó mà

      Xóa
  3. anh ơi e muốn hỏi là làm sao khi mình click vào 1 button thì nó đổi màu..và khi click vào 1 button khác thì button lúc trước mình click trở lại màu bình thường ạ?
    e cảm ơn anh!

    Trả lờiXóa
    Trả lời
    1. bạn có thể viết thêm cái này Vào sự kiện click
      (sender as Button).BackColor = Color.Red; // Đặt màu mới cho nút được click
      foreach (Button btn in pnMain.Controls) // Lặp từng button trong Panel
      {
      if (btn != sender)
      {
      btn.BackColor = Color.Green;//Đặt màu cho button không được click
      }
      }

      Xóa
    2. Cám ơn anh Nam vì bài viết. Anh cho em hỏi thêm ý của bạn Nghĩa khi click vào 1 button khác thì button lúc trước mình click vẫn còn màu lúc click .
      Cám ơn anh

      Xóa
  4. admin có thể giúp mình được không. Project của mình là làm quản lý bàn ăn nhà hàng, mình tạo mỗi button tương ứng 1 bàn, có 3 khu vực nên mình chia làm 3 mảng.
    mình muốn hỏi là nếu mình thêm 1 bàn vào 1 khu vực thì làm thế nào để nhận diện khu vực cần thêm button (3 khu vực là 3 hàng riêng biệt), với lại mình muốn hỏi có cách nào áp location vào button được tạo mới không, vì mình nghĩ như vậy sẽ xử lý vị trí tốt hơn

    Trả lờiXóa

Được tạo bởi Blogger.