解决方案 »
- winform程序,如何实现文本框,默认显示“提示信息”,只要一点击,提示就没了
- 怎样通过新浪网站或网易网站发送手机短信
- ReportViewer谁能帮我解决报表中的一个问题,大分
- 数据库链接关闭问题
- 急,急,急,返回值问题??
- C#程序中,引用了微软的FlexGrid控件,利用.net自带的打包工具打包。给客户安装后,运行正常,但卸载程序,再安装时,程序报错。用编辑器
- C#如何删除只读属性文件目录及下属所有文件夹、文件?
- 紧急求助,高手帮帮忙,搞了一天找不出原因datagridview更新的问题
- 如何在窗体A中一个一个地关闭多个已打开的B窗体?
- DropDownList捆绑数据问题急!急!急!急!急!急!
- 如何把新建的XmlNamespaceManager内容加入到xml文档里面去?
- [求助]VS2013 代码先行迁移,报:未能加载文件或程序集
new Panel()
Position //设置位置
Size //设置大小
this.Controls.Add(panel); //添加到窗体
这三个步骤,如果你看过 *.Designer.cs应该会很了解。
要实现你的功能,就需要在代码里对位置和大小进行控制了
private void BindDataForm()
{
for (int i = 0; i < 用户输入的数值; i++)
{
Panel panel_name = new Panel();
panel_name.Name = "panelInfo" + i.ToString();
panel_name.TabIndex = 2;
panel_name.BackColor = Color.AliceBlue;
panel_name.Location = new Point(panel_name.Width * i, 5);
this.panel1.Controls.Add(panel_name);
}
}
但这没能太到我的效果啊
没有这个,只能用TableLayoutPanel自己去调试并合并列
for (int i = 0; i < 3; i++)
{
Panel panel_name = new Panel();
panel_name.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowOnly;
panel_name.BackColor = Color.AliceBlue;
this.flowLayoutPanel1.Controls.Add(panel_name);
}大小可以根据Winform的宽度计算
比如:我输入一个 17,请问是几行几列呢?20 为什么是 4 行 5 列而不是 5 行 4 列或者 2 行 10 列呢?
这个是 keypoint,至于怎么弄成格子,那是很 easy 的问题。
你想当然了,根据 Form 的固定宽度,我可以放一行 10 个,也可以放一行 四五个,没人规定我 的 Panel 到底有多大。对不对?这就是问题。
楼主说的只要不要太难看就行了,这个就是一个算法布局问题,但是这个布局跟 Form 大小没有半毛钱关系!