c# winform 怎么动态生成4行3列的lable 当lable大于12个进行翻页显示,并且lable动态增加与减少

问题描述

c#winform怎么动态生成4行3列的lable当lable大于12个进行翻页显示,并且lable动态增加与减少(举例:当数量为9时lable数量是9当数量为10是lable数量为10如何数量减少lable数量也随之减少静态更新)

解决方案

解决方案二:

flowLayoutPanel试试这个控件
解决方案三:

怎么实现静态刷新啊,每次刷新都是一闪一闪的
解决方案四:

还不如直接说你的需求
解决方案五:

真心没看懂你的需求
解决方案六:

以下代码在vs2013下调试通过。新建一个Windows窗体应用程序:test_dynamicLabelusingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Windows.Forms;namespacetest_dynamicLabel{publicpartialclassForm1:Form{constintLabelRow=4;constintLabelCol=3;NumericUpDownnumericUpDown1;Label[]LabelList;publicForm1(){InitializeComponent();}privatevoidForm1_Load(objectsender,EventArgse){//页面双缓冲this.DoubleBuffered=true;AutoScroll=true;LabelList=newLabel[0];//动态设置上下调整数字的控件numericUpDown1=newNumericUpDown();numericUpDown1.Top=100;numericUpDown1.Left=100;numericUpDown1.Width=50;numericUpDown1.Parent=this;numericUpDown1.ValueChanged+=numericUpDown1_ValueChanged;//初始12个LabelnumericUpDown1.Value=12;}///<summary>///释放所有的Label///</summary>privatevoidFreeAllLabel(){intlblCount;if(LabelList==null)return;lblCount=LabelList.Count();for(inti=0;i<lblCount;i++){Labeltmplbl;tmplbl=LabelList[i];tmplbl.Text="";tmplbl.Parent=null;tmplbl=null;}LabelList=null;}///<summary>///动态生成Label///<paramname="lblCount">Label总数</param>///</summary>privatevoidDynamicCreateLabel(intlblCount){Labeltmplbl;intfrmwidth,frmheight;FreeAllLabel();//窗体的尺寸frmwidth=Width;frmheight=Height;LabelList=newLabel[lblCount];//创建Labelfor(inti=0;i<lblCount;i++){tmplbl=newLabel();tmplbl.Parent=this;//位置和Label宽度需要根据实际情况进行调整tmplbl.Left=Convert.ToInt16((frmwidth/LabelCol)*(i%LabelCol+0.5)-tmplbl.Width/2);tmplbl.Top=Convert.ToInt16((frmheight/LabelRow)*(i/LabelCol+0.5)-tmplbl.Height);tmplbl.Text="Text"+i.ToString();LabelList[i]=tmplbl;}}privatevoidnumericUpDown1_ValueChanged(objectsender,EventArgse){DynamicCreateLabel(Convert.ToInt16(numericUpDown1.Value));}}}
解决方案七:

我需要做一个排队管理,界面是一个4行3列的显示,我是读取数据库的姓名显示在上面的,当数量增加时lable自动增加,减少时自动减少,大于12时自动翻页
解决方案八:

我是这样写的,但是现在存在3个问题,第一个问题就是刷新页面是一跳一跳的,我想做成静态刷新,第二个就是翻页,当数量大于12个的时候进行翻页第三个问题就是,怎么控制行列间距usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Data.SqlClient;usingSystem.Drawing;usingSystem.Text;usingSystem.Windows.Forms;namespaceTV{publicpartialclassForm1:Form{publicForm1(){InitializeComponent();}privateTimerTimer;Imageimg;privatevoidForm1_Load(objectsender,EventArgse){//定义一个计时器Timer=newTimer();Timer.Interval=1000;//每1秒刷新一次Timer.Tick+=newEventHandler(timer1_Tick);Timer.Start();this.timer1.Enabled=true;this.timer1.Interval=0x3e8;label3.Text=DateTime.Now.ToString("yyyy年MM月dd日");label4.Text=DateTime.Now.ToString("星期ddd");////定义一个计时器TimerTimer2=newTimer();Timer2.Interval=5000;//每5秒刷新一次Timer2.Tick+=newEventHandler(timer2_Tick);Timer2.Start();this.timer1.Enabled=true;this.timer1.Interval=0x3e8;}privatevoidtimer1_Tick(objectsender,EventArgse){label2.Text=DateTime.Now.ToString("HH:mm:ss");}///<summary>///ESC关闭窗体///</summary>///<paramname="msg"></param>///<paramname="keyData"></param>///<returns></returns>protectedoverrideboolProcessCmdKey(refSystem.Windows.Forms.Messagemsg,System.Windows.Forms.KeyskeyData){intWM_KEYDOWN=256;intWM_SYSKEYDOWN=260;if(msg.Msg==WM_KEYDOWN|msg.Msg==WM_SYSKEYDOWN){switch(keyData){caseKeys.Escape:if(MessageBox.Show("确定退出吗?","提示",MessageBoxButtons.YesNo,MessageBoxIcon.Exclamation)==DialogResult.Yes){this.Close();}break;}}returnfalse;}Labellb;privatevoidtimer2_Tick(objectsender,EventArgse){this.flowLayoutPanel1.Controls.Clear();try{SqlConnectionconn=newSqlConnection("Server=.;UserId=sa;Pwd=sa;DataBase=SendDrugDB;");//实例化SqlCommand对象if(conn.State==ConnectionState.Closed){conn.Open();}SqlDataAdapterada=newSqlDataAdapter("select*fromtv_vieworderbycreate_timedesc",conn);DataSetds=newDataSet();//定义DataSet对象实例ada.Fill(ds);if(ds.Tables[0].Rows.Count>0){for(inti=0;i<ds.Tables[0].Rows.Count;i++){lb=newLabel();lb.Text=ds.Tables[0].Rows[i]["Patient_Name"].ToString();lb.Name="bt"+(i+1).ToString();//设置lb名称lb.Width=285;//设置宽度lb.Height=110;//设置高度img=Image.FromFile(@"C:UsersMQ12Desktop名字背景.png");//给lable设置背景((System.Windows.Forms.Control)lb).BackgroundImage=img;//添加背景lb.Font=newFont("宋体",50,System.Drawing.FontStyle.Bold);//设置字体大小lb.TextAlign=System.Drawing.ContentAlignment.MiddleCenter;//设置居中lb.ForeColor=Color.Transparent;//设置颜色this.flowLayoutPanel1.Controls.Add(lb);//添加至容器}}}catch{return;}}}}
解决方案九:

1、//页面双缓冲有这句还会有刷新问题吗?this.DoubleBuffered=true;
解决方案十:

为什么要每次清空所有控件再次添加控件?你就不存在就更新控件数据,不存在才添加控件
解决方案十一:

TableLayout就可以了,另外你需要局部刷新的话,可以给每个lable都动态绑定一个事件,用字典存放,key是你lable的标识,value是你更新lable的方法,当你某个lable更新的时候,只需要根据lable去字典里面查询,然后执行对应的事件就行了。楼主能明白我的意思吗?

时间: 2024-12-22 00:18:49

c# winform 怎么动态生成4行3列的lable 当lable大于12个进行翻页显示,并且lable动态增加与减少的相关文章

js动态修改表格行colspan列跨度的方法

 这篇文章主要介绍了js动态修改表格行colspan列跨度的方法,实例分析了javascript动态修改html中table属性的技巧,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例讲述了js动态修改表格行colspan列跨度的方法.分享给大家供大家参考.具体如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 <!DOCTYPE h

打印问题。想打印网页上的局部,是一个表格,这个表格是动态生成的,虽然调用数据库内容,但是调用的数据来自不同库,根据内容动态生成。

问题描述 打印问题.想打印网页上的局部,是一个表格,这个表格是动态生成的,虽然调用数据库内容,但是调用的数据来自不同库,根据内容动态生成. 解决方案 解决方案二:坛子里有很多了,可以查一下呀

js动态修改表格行colspan列跨度的方法_javascript技巧

本文实例讲述了js动态修改表格行colspan列跨度的方法.分享给大家供大家参考.具体如下: <!DOCTYPE html> <html> <head> <script> function setColSpan() { var x=document.getElementById('myTable').rows[0].cells; x[0].colSpan="2"; x[1].colSpan="6"; } </sc

js动态生成指定行数的表格

下面用js实现可以生成用户所需行数的表格. 1.首先在body中填入下列代码,获取用户填入的行数值 1 <table> 2 <tr> 3 <td>动态生成表格</td> 4 <td><input id="Cold" type="text" class="input" size="10" name="Num"/>行</td>

js动态生成指定行数的表格_javascript技巧

下面用js实现可以生成用户所需行数的表格. 1.首先在body中填入下列代码,获取用户填入的行数值 复制代码 代码如下: <table> <tr> <td>动态生成表格</td> <td><input id="Cold" type="text" class="input" size="10" name="Num"/>行</td&g

asp.net 如何给后台动态生成的table设置&amp;amp;lt;td&amp;amp;gt;css样式

问题描述 前台代码有个table,我在后台动态绑定数据到这个table中请问怎么给这个table动态生成的行.列设置css样式 解决方案 解决方案二:Tabletable=newTable();TableRowtr=newTableRow();TableCelltc1=newTableCell();tc1.Text="单位名称:"+ds1.Tables[0].Rows[i]["CompanyName"].ToString();TableCelltc2=newTabl

PHP动态生成静态HTML网页教程

动态|教程|网页|静态 最近研究PHP的一些开发技术,发现PHP有很多ASP所没有的优秀功能,可以完成一些以前无法完成的功能,例如动态生成HTML静态页面,以减少服务器CPU的负载,提高用户访问的速度. 我们知道,PHP读取MYSQL动态显示,在访问量大的情况下,会有很多性能问题,如果租用别人的虚拟主机,则会因为CPU消耗过多而被限制CPU,导致网页无法访问.我这里给出一个PHP动态生成HTML的方法,可以极大降低服务器CPU负荷. 首先设置.htaccess文件,将动态调用的参数转换为静态的H

JQuery Ajax动态生成Table表格_AJAX相关

前言: 本示例大概功能是前台通过JQuery的Ajax调用一般处理程序(Handler),获取表格需要显示的信息,然后转换成json格式返回给前台,前台获取到数据后循环构建表格的行,最好把行附加到表里. 目标: a 熟悉简单JQuery Ajax的使用 b 了解如何构造基本的Json格式的数据(构建Json也可以通过第三方的dll) c 熟悉下handler的基本用法 1 简单效果图 2 前台代码 <%@ Page Language="C#" AutoEventWireup=&q

一位数组排序后如何在动态生成的Table中显示?

问题描述 排序后的数值已经在Convection[k]中了,为何我用这个语句Table1.Rows[m5].Cells[2].Text=Convection[k].ToString();m5为动态生成的行数,在第二列中显示的数值都是0,是什么原因? 解决方案 解决方案二:这不应该是第3列吗?