winform怎么动态生成多个panel控件,并且生成两个控件换一行呢?

winform怎么动态生成多个panel控件,并且生成两个控件换一行呢?,第1张

首先新建一个PictureBox控件

PictureBox pb = new PictureBox()

为这个控件添加一个点击事件

如:

pb.Click += new System.EventHandler(this.pictureBox_Click)//添加Click事件

有这个基础,那么动态创建多个控件也是一件容易的事情

代码如下:

/// <summary>

/// 图片创建控件,并初始化一共是96个

/// </summary>

private void createPicBoxList()

{

PictureBox pb = null

for (int j = 0j <8j++)

{

for (int i = 0i <12i++)

{

pb = new PictureBox()

pb.BackColor = Color.White

//通过这个标识记录不同的编号y在前面.记X从1开始索引,Y直接保存A...H这种

//已经转化为A1,A2,....H12这种格式,其中A的ASCII=65

pb.Tag = (Convert.ToChar(j + 65)).ToString() + (i + 1).ToString()

pb.Name = "pb"//通过这个Name标记所有PictureBox控件.

pb.Size = new Size(56, 56)//大小

pb.Location = new Point(i * 56, j * 56)//位置.

pb.Image = holesImg//初始化图片Bitmap或者Image对象

pb.Click += new System.EventHandler(this.pictureBox_Click)//添加Click事件

this.groupBox.Controls.Add(pb)//加载到groupBox容器内

}

}

}

以上各个参数根据自己实际需要修改,这里是仅是演示作用,上述代码中一共创建了96个控件和图片

打开Microsoft Visual Studio 2010

新建解决方案,

添加项目——动态生成控件

窗体布局

把窗体设置合适的大小

确定控件的基本属性

1、假设要添加15个button按钮;

2、基本属性如下:

Name:名称 myButton

Text:显示文本 按钮(i)

Size:大小 50*50

Location:窗体位置

Location属性如何动态变化?(分析如图)

假设要把15个按钮,每5个一行生成,那么就需要让Location属性动态变化?怎么办?

经过分析,确定X的坐标为:50+i%5*100

Y的坐标如何动态确定?

1、定义一个行变量;

2、Y的坐标为:50+row*100

3、增加判断换行条件:i % 5 == 0 &&i != 0

输入代码试试看?ok!运行效果如图


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11636712.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存