[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
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
Reviewed by Nguyen Nam
on
1/12/2015
Rating:
Không có nhận xét nào: