设计思路大概是这样的,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. tomcat manager 禁止外网访问 只容许内网访问

    参考:http://tomcat.apache.org/tomcat-7.0-doc/manager-howto.html A default Tomcat installation includes ...

  2. mybatis generator 生成的example类的使用方法

    generator 生成的example类 示例 1. 搜索数据库Id不为空打元组 java代码 @RequestMapping("/test") public String ex ...

  3. 如何在Mac上将视频刻录到DVD / ISO文件

    如果您希望将喜爱的视频转换为DVD / Blu-ray光盘以进行物理备份或播放,则Mac版Wondershare UniConverter可以专业地完成任务.今天的教程就是如何在Mac上轻松刻录DVD ...

  4. 【leetcode】986. Interval List Intersections

    题目如下: Given two lists of closed intervals, each list of intervals is pairwise disjoint and in sorted ...

  5. Halo(五)

    ApplicationPreparedEvent 监听事件 Event published once the application context has been refreshed but be ...

  6. shell倒计时下班时间

    #!/bin/sh offWorkTime="19:00:00" offWorkHour=${offWorkTime::} offWorkMinute=${offWorkTime: ...

  7. django 框架下的路由分发

  8. PHP 工程师技能图谱

    # PHP 工程师技能图谱## 基础知识 - HTTP - HEADER - REQUEST - RESPONSE - GET/POST/PUT/DELETE/PATCH/CONNECT/OPTION ...

  9. JS-layui:百科

    ylbtech-JS-layui:百科 layui,是一款采用自身模块规范编写的前端 UI 框架,遵循原生 HTML/CSS/JS 的书写与组织形式,门槛极低,拿来即用.其外在极简,却又不失饱满的内在 ...

  10. PHP 代码编写注意事项总结归纳

    1- 编写模块化代码 良好的PHP代码应该是模块化代码.PHP的面向对象的编程功能是一些特别强大的工 具,可以把你的应用程序分解成函数或方法.你应该尽可能多的从你的应用程序的服务器端分开前端的HTML ...