[C# Form] Mảng button sinh tự động và xử lý ContexMenuStrip

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

Array of button and context menu strip event
Sử dụng lại code tạo mảng Button tự động từ bài viết này:
http://blog.vnamct.com/2014/12/c-form-tao-mang-button-tu-ong-va-xu-ly.html

Mình sẽ viết lại code để xử lý sự kiện của ContextMenuStrip cho từng button. Khi nhấn chuột phải vào một button bất kì sẽ hiển thị Menu cho phép lựa chọn chức năng. Ở đay là hiển thị ra tên của Button.

Đầu tiên kéo một cái ContextMenuStrip vào form từ thanh công cụ. Ở bài viết này là contextMenuStrip1

Khai báo một cái biến để lưu tên Button


        string tagtext = ""; //Tạo biến lưu tên button


Hàm tạo mảng button và hiển thị



       

void CreateArrayButton(int SoHang, int SoCot)
        {
          
            int Top = 0; //Vi tri Top
            for (int i = 0; i < SoHang; i++)
            {
                int Left = 0; //Vi tri Left
                for (int j = 0; j < SoCot; j++)
                {
                    //Taoj 1 button mới
                    Button bt = new Button();
                    //Thêm thuộc tính
                    bt.Name = string.Format("bt{0}{1}", i, j);
                    bt.Tag = string.Format("[{0}, {1}]", i, j);
                    bt.Text = string.Format("btn [{0}, {1}]", i, j);
                    bt.Size = new Size(50, 50);

                    bt.Top = Top;
                    bt.Left = Left;

                    Left += 50;

                    bt.BackColor = Color.Green;
                    bt.ForeColor = Color.White;

                    //Tạo su kiện mouse click cho button
                    bt.MouseDown += new MouseEventHandler(bt_MouseDown);

                    //Phải thêm nút vào panel để hiển thị luôn
                    pnMain.Controls.Add(bt);
                }
                Top+=50 ;  //Tang Top len 50
            }

           
        }


 Hàm xử lý sự kiện Mouse Down



       
        private void bt_MouseDown(object sender, MouseEventArgs e)
        {
            Button bt = (Button)sender; //lấy button đang được click
            tagtext = ((Button)sender).Text;


            if (e.Button == MouseButtons.Left)
            {
               
                MessageBox.Show(bt.Tag.ToString());
            }
            else
                if (e.Button == MouseButtons.Right)
                {
                              
                   contextMenuStrip1.Show(bt,e.Location);
                   
                }
           
        }


Hàm Xử lý Menu Con của Context Menu 



private void showToolStripMenuItem_Click_1(object sender, EventArgs e)
        {
            MessageBox.Show("Bạn dang nhấn nút" + tagtext);
        }




Code Toàn bộ Project



using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace TaoMangTuDong
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

     
        string tagtext = ""; //Tạo biến lưu tên button
       
        void CreateArrayButton(int SoHang, int SoCot)
        {
          
            int Top = 0; //Vi tri Top
            for (int i = 0; i < SoHang; i++)
            {
                int Left = 0; //Vi tri Left
                for (int j = 0; j < SoCot; j++)
                {
                    //Taoj 1 button mới
                    Button bt = new Button();
                    //Thêm thuộc tính
                    bt.Name = string.Format("bt{0}{1}", i, j);
                    bt.Tag = string.Format("[{0}, {1}]", i, j);
                    bt.Text = string.Format("btn [{0}, {1}]", i, j);
                    bt.Size = new Size(50, 50);

                    bt.Top = Top;
                    bt.Left = Left;

                    Left += 50;

                    bt.BackColor = Color.Green;
                    bt.ForeColor = Color.White;

                    //Tạo su kiện mouse click cho button
                    bt.MouseDown += new MouseEventHandler(bt_MouseDown);

                    //Phải thêm nút vào panel để hiển thị luôn
                    pnMain.Controls.Add(bt);
                }
                Top+=50 ;  //Tang Top len 50
            }

           
        }

        //Hàm sử lý sự kiện click
        private void bt_MouseDown(object sender, MouseEventArgs e)
        {
            Button bt = (Button)sender; //lấy button đang được click
            tagtext = ((Button)sender).Text;


            if (e.Button == MouseButtons.Left)
            {
                   MessageBox.Show(bt.Tag.ToString());
            }
            else
                if (e.Button == MouseButtons.Right)
                {
                             
                   contextMenuStrip1.Show(bt,e.Location);
                   
                }
           
        }

        private void cmdTao_Click(object sender, EventArgs e)
        {
            CreateArrayButton((int)numericUpDown1.Value, (int)numericUpDown2.Value);
        }

        private void showToolStripMenuItem_Click_1(object sender, EventArgs e)
        {
            MessageBox.Show("Bạn dang nhấn nút" + tagtext);
        }


    }
}






TẢI VỀ PROJECT TẠO MẢNG BUTTON TỰ ĐỘNG VÀ CONTEXT MENU Strip Ở ĐÂY
[C# Form] Mảng button sinh tự động và xử lý ContexMenuStrip [C# Form] Mảng button sinh tự động và xử lý ContexMenuStrip Reviewed by Nguyen Nam on 1/12/2015 Rating: 5

Không có nhận xét nào:

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