设计思路大概是这样的,Form内添加一个groupBox,groupBox内添加一个panel,panel的属性AutoScroll=true,在panel内动态添加label。

原始From如下:

动态添加的代码如下:

    public partial class Form1 : Form
{
string[] _DataSource = new string[] { "" ,"" ,"","","","","" };
int _LX = ;
int _LY = ;
int _LWidth = ;
int _LHeight = ;
int _LMaxChar = ;
int _YSpace = ;
int _XSpace = ;
int _WellCounts = ;
int _TbX = ;
int _TbWidth = ;
int _TbHeight = ;
TextBox[] textBoxes;
public Form1()
{
InitializeComponent();
InitializeForm();
} private void InitializeForm()
{
_WellCounts = _DataSource.Length;
Label[] labels = new Label[_WellCounts];
textBoxes = new TextBox[_WellCounts]; for (int i = ; i < _WellCounts;i++)
{
string str = _DataSource[i];
str = str.Length > _LMaxChar ? str.Substring(, _LMaxChar - ) + "..." : str;
var l = new Label() { Text = str, AutoSize = false ,Size = new Size(_LWidth,_LHeight) };
if (i == )
{
l.Location = new Point(_LX,_LY);
}
else
{
_LY = _LY + _YSpace + labels[i - ].Size.Height;
l.Location = new Point(_LX,_LY);
}
var t = new TextBox() { Size = new Size(_TbWidth,_TbHeight) };
this.panel1.Controls.Add(l);
this.panel1.Controls.Add(t);
labels[i] = l;
textBoxes[i] = t;
} _TbX = _LX + _LWidth + _XSpace;
for (int i = ;i < _WellCounts;i++)
{
textBoxes[i].Location = new Point(_TbX,labels[i].Location.Y - );
}
} }

实现效果图:

对了,业务上还有需求就是点击关闭Form后,可以判断是否要关闭,代码如下:

        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
var result = MessageBox.Show(string.Format("部分输入值不合法!\n继续退出?"),
"提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Information);
if (result == DialogResult.Cancel)
{
e.Cancel = true;
}
}

winform中动态生成多行label,同时添加滚动条的更多相关文章

  1. 编辑表格输入内容、根据input输入框输入数字动态生成表格行数、编辑表格内容提交传给后台数据处理

    编辑表格输入内容.根据input输入框输入数字动态生成表格行数.编辑表格内容提交传给后台数据处理 记录自己学习做的东西,写的小demo,希望对大家也有帮助! 代码如下: <!DOCTYPE ht ...

  2. HTML中动态生成内容的事件绑定问题【转载】

    转自 http://www.hitoy.org/event-binding-problem-of-dynamically-generated-content.html 由于实际的需要,有时需要往网页中 ...

  3. JavaScript中动态生成表格

    动态生成表格,首先需要输入并获取动态的数字,html中结构代码如下:行:<input type="text" id="row" value="5 ...

  4. 在后台代码中动态生成pivot项并设置EventTrigger和Action的绑定

    最近在做今日头条WP的过程中,遇到需要动态生成Pivot项的问题.第一个版本是把几个频道写死在xaml里了,事件绑定也写在xaml里,每个频道绑定一个ObservableCollection<A ...

  5. EasyUI中动态生成标签页

    这是最近学到的内容,当时是有思路但是不知道怎么获取当前的点击对象,就没有实现功能,通过更深入的学习,我知道了不仅仅是Java,Oracle中有一个this,同样的EasyUI中也存在一个this,来获 ...

  6. JQuery中动态生成元素的绑定事件(坑死宝宝了)

    今天在做项目的时候,遇到了一个前端的问题,坑了我好长时间没有解决,今天就记录于此,也分享给大家. 问题是这样的,首先看看我的界面,有一个初始印象: 下面是操作列所对应的JS代码: { "da ...

  7. WinForm中动态添加控件 出现事件混乱,解决办法记录。

    还是在抢票软件中出的问题,我没点击一个联系人,要生成一排控件,其中有席别combobox这样的下拉框控件,会出现如下图所示的问题:问题描述:在代码中动态创建的控件,事件混乱了,一个控件触发了所有同类型 ...

  8. 基于DevExpress的BandedGridView动态生成多行(复合)表头

    最近cs项目中有个看板的功能需求,整个系统是基于DevExpress组件开发的,由于对这个组件的布局不是很熟,也借鉴了网上一些其他人的做法,普遍都是通过GridControl的BandedGridVi ...

  9. Jquery中动态生成的元素没有点击事件或者只有一次点击事件

    今天用jq做动态生成的元素的click事件时,click只执行了一次,当然有些朋友可能根本没执行, 执行了一次的原因是因为可能有函数加载了一遍,一次都没执行的可能是没绑定对象或者jq版本问题, 动态生 ...

随机推荐

  1. ThreadLocal简单使用示例

    ThreadLocal为每个线程提供单独的数据副本,线程间的数据为自身线程所独有(不存在共享变量问题),直接看代码 public class ThreadLocalTest { private sta ...

  2. 转载 Struts2的配置 struts.xml Action详解

    在学习struts的时候,我们一定要掌握struts2的工作原理.只有当我们明确了在struts2框架的内部架构的实现过程,在配置整个struts 的框架时,可以很好的进行逻辑上的配置.接下来我就先简 ...

  3. java 延时

    Java中主要有两种方法来实现延迟,即:Thread和Timer 1.普通延时用Thread.sleep(int)方法,这很简单.它将当前线程挂起指定的毫秒数.如try{Thread.currentT ...

  4. k8s-mysql搭建

    安装官方文档https://kubernetes.io/docs/tasks/run-application/run-replicated-stateful-application/ 搭建完成,但是没 ...

  5. spring boot poi 导出Excel

    public class ExcelData implements Serializable { private static final long serialVersionUID = 444401 ...

  6. 【InnoDB】插入缓存,两次写,自适应hash索引

    InnoDB存储引擎的关键特性包括插入缓冲.两次写(double write).自适应哈希索引(adaptive hash index).这些特性为InnoDB存储引擎带来了更好的性能和更高的可靠性. ...

  7. tcgetattr学习

    一.函数名称: int tcgetattr(int fd, struct termios *termios_p); 二.函数功能: The termios functions describe a g ...

  8. JavaScript 六种继承方式

    title: JS的六种继承方式 date: 2017-06-27 05:55:49 tags: JS categories: 学习 --- 继承是面向对象编程中又一非常重要的概念,JavaScrip ...

  9. SCP-bzoj-1019

    项目编号:bzoj-1019 项目等级:Safe 项目描述: 戳这里 特殊收容措施: 对于一个hanoi,知道了各种移动操作的优先级,也就确定了方案.可以证明对于盘子数为N的hanoi,任意移动方案都 ...

  10. linux下lamp.sh一键配置lamp环境流程

    linux下lamp.sh一键配置lamp环境流程 一.总结 一句话总结: 2.将网站从github上clone到/data/www/网站域名/ 3.更改网站目录权限:chown -R apache: ...