有LABLE1 LABLE2 ,LABLE1在LABLE2上面(假设上下间距为10PX),当LABLE1填充数据后,LABLE1就把LABLE2挡住了,怎么让LABLE1填充数据,LABLE2向下移动,间距保持在10PX左右?
解决方案 »
- datagridview选中行颜色不起作用,系统默认默认橘黄色,现在想改成跟office淡蓝色没有效果呢
- WPF dataGrid cell 中显示 颜色
- 代码求助:如何通过switch…case来选择显示不同的网页
- Repeater嵌套Repeater的问题,附错误代码
- 自定义“组”件Component如果设置其ContextMenu和Icon的属性?
- 初级菜鸟问题!谢谢来此帮助我,在线等急!!
- !!!!!!!!!!!!@@@@@@@@@@@@@@@@@------急救!! 向 XML 文件中插入节点问题!!!!!!!!!!!!!!!
- 为什么this.Controls.Find在设计状态下异常
- 谁有讽刺比尔盖茨的漫画或者图片??
- C#调用BarTender SDK无法打印问题
- 问题!!!!
- C# string类型转换为float精度问题
或者
2.在label的大小改变事件里判断两个label的间隔距离,并且按要求设置
int LblNum = str.Length; //Label内容长度
int RowNum = 10; //每行显示的字数
float FontWidth = label1.Width / label1.Text.Length; //每个字符的宽度
int RowHeight=15; //每行的高度
int ColNum = (LblNum - (LblNum / RowNum)*RowNum) == 0?(LblNum / RowNum) : (LblNum / RowNum) + 1; //列数
label1.AutoSize = false; //设置AutoSize
label1.Width = (int)(FontWidth * 10.0); //设置显示宽度
label1.Height = RowHeight * ColNum; //设置显示高度
//通过这种方法可以令Label每行所显示的字数得到控制,同时也动态的生成的所对应的行数,这对于排版有很大的好处(1)通过上面方法计算出高度
(2)根据Lable1的TOP+高度+10 设置Label2的TOP位置
{
Label lbl=new Label();
lbl.Id=i.ToString();
lbl.Text= i.ToString();
lbl.AutoSize = false;
lbl.Width = 10;
lbl.Top=10+i*10;
this.Controls.Add(lbl);
}
Lable1.Refresh
Lable2.Top = Lable1.Top + Lable1.Height + 10
套用#8的代码:
for(int i=1;i <10;i++)
{
Label lbl=new Label();
lbl.Id=i.ToString();
lbl.Text= i.ToString();
lbl.AutoSize = false;
lbl.Width = 10;
lbl.Top=10+i*10; // 这里有问题吧, 好像是 lbl.Top = Lable1.Top + (位移量 10 + lbl.Height)* i
this.Controls.Add(lbl);
}
winform有TableLayoutPanel
FlowLayoutPanel
private void label1_TextChanged(object sender, EventArgs e)
{
label2.Top = label1 .Bottom + 10;
}
private void button1_Click(object sender, EventArgs e)
{
label1.Text += "我是一个中国人,我爱我的祖国!\r\n";
}