【实例简介】
利用C#原生系统控件,流式布局生成系统主界面,根据窗体大小可以自动改变控件在窗体的位置
【实例截图】
【核心代码】
private void AddButtonToPanel(int btnTag)
{
flowLayoutPanel1.Controls.Clear();
switch (btnTag)
{
case 0:
//创建面板
for (int i = 0; i < 60; i )
{
var btn = new Button()
{
Height = 150,
Width = 150,
FlatStyle = FlatStyle.Flat,
Text = $"\r\n测试按钮{i 1}",
ForeColor = Color.White,
BackColor = Color.FromArgb(37, 37, 38), //SkyBlue Transparent
TextImageRelation = TextImageRelation.ImageAboveText
};
btn.FlatAppearance.BorderSize = 0;
btn.FlatAppearance.MouseOverBackColor = Color.FromArgb(69, 69, 74);
btn.FlatAppearance.MouseDownBackColor = Color.FromArgb(69, 69, 74);
btn.Name = $"TestBtn{i}";
btn.Image = Resources.chart_bar;
btn.Click = new EventHandler(ButtonRaiseEvent);
flowLayoutPanel1.Controls.Add(btn);
}
break;
case 1:
for (int i = 0; i < 6; i )
{
var btn = new Button()
{
Height = 150,
Width = 150,
FlatStyle = FlatStyle.Flat,
Text = $"\r\n测试按钮{i 1}",
ForeColor = Color.White,
BackColor = Color.FromArgb(37, 37, 38), //SkyBlue Transparent
TextImageRelation = TextImageRelation.ImageAboveText
};
btn.FlatAppearance.BorderSize = 0;
btn.FlatAppearance.MouseOverBackColor = Color.FromArgb(69, 69, 74);
btn.FlatAppearance.MouseDownBackColor = Color.FromArgb(69, 69, 74);
btn.Name = $"TestBtn{i}";
btn.Image = Resources.link;
btn.Click = new EventHandler(ButtonRaiseEvent);
flowLayoutPanel1.Controls.Add(btn);
}
break;
case 2:
for (int i = 0; i < 14; i )
{
var btn = new Button()
{
Height = 150,
Width = 150,
FlatStyle = FlatStyle.Flat,
Text = $"\r\n测试按钮{i 1}",
ForeColor = Color.White,
BackColor = Color.FromArgb(37, 37, 38), //SkyBlue Transparent
TextImageRelation = TextImageRelation.ImageAboveText
};
btn.FlatAppearance.BorderSize = 0;
btn.FlatAppearance.MouseOverBackColor = Color.FromArgb(69, 69, 74);
btn.FlatAppearance.MouseDownBackColor = Color.FromArgb(69, 69, 74);
btn.Name = $"TestBtn{i}";
btn.Image = Resources.wrench_plus_2;
btn.Click = new EventHandler(ButtonRaiseEvent);
flowLayoutPanel1.Controls.Add(btn);
}
break;
default:
break;
}
//添加控件后,各控件的间距调整
foreach (Control c in flowLayoutPanel1.Controls)
c.Margin = new Padding(15);
}