1 using System;
2 using System.Collections.Generic;
3 using System.ComponentModel;
4 using System.Data;
5 using System.Drawing;
6 using System.Linq;
7 using System.Text;
8 using System.Threading.Tasks;
9 using System.Windows.Forms;
10
11 namespace WindowsFormsApplication1
12 {
13 public partial class Form1 : Form
14 {
15 public Form1()
16 {
17 InitializeComponent();
18 }
19
20 private void Form1_Load(object sender, EventArgs e)
21 {
22 //构建网格布局
23 BuildLsyout();
24 //向网格布局中加按钮
25 AddButtonToTableLayout();
26 }
27 private void BuildLsyout()
28 {
29 //清除原先的列
30 tableLayoutPanel1.ColumnStyles.Clear();
31 //添加新列
32 tableLayoutPanel1.ColumnCount = 20;
33 for (int i = 0; i < 20; i++)
34 {
35 ColumnStyle style = new ColumnStyle(SizeType.Percent,5);
36 tableLayoutPanel1.ColumnStyles.Add(style);
37 }
38 //清除原先的行
39 tableLayoutPanel1.RowStyles.Clear();
40 //添加新行
41 tableLayoutPanel1.RowCount = 20;
42 for (int i = 0; i < 20; i++)
43 {
44 ColumnStyle style = new ColumnStyle(SizeType.Percent,5);
45 tableLayoutPanel1.RowStyles.Add(style);
46 }
47 }//构建网格布局
48 private void AddButtonToTableLayout() //向网格布局中加按钮
49 {
50 Random rand = new Random();
51 for (int i = 0; i < 400; i++)
52 {
53 Button bot = new Button();
54 bot.Text = i.ToString();
55 bot.Dock = DockStyle.Fill;
56 tableLayoutPanel1.Controls.Add(bot);
57 if (rand.Next(100) % 30 == 0)
58 {
59 bot.Tag = 1;
60 }
61 else if (rand.Next(100) % 50 == 0)
62 {
63 bot.Tag = 10;
64 }
65 else if (rand.Next(100) % 100 == 0)
66 {
67 bot.Tag = 100;
68 }
69 else if (rand.Next(100) % 200 == 0)
70 {
71 bot.Tag = 500;
72 }
73 else if (rand.Next(100) % 500 == 0)
74 {
75 bot.Tag = 1000;
76 }
77 else
78 {
79 bot.Tag = 0;
80 }
81 //初始化按钮的事件
82 bot.Click += bot_Click;
83
84 }
85
86 }
87 void bot_Click(object sender, EventArgs e)
88 {
89 Button bot = sender as Button;
90 int n =(int)bot.Tag;
91 if (n!=0)
92 {
93 bot.BackColor = Color.Red;
94 bot.ForeColor = Color.Blue;
95 bot.Text = n.ToString();
96 bot.Font = new Font("微软雅黑", 12, FontStyle.Bold);
97 }
98 bot.Enabled = false;
99 } //按键
100 }
101 }