label标签显示不出来

baishaoge 2012-03-04 03:13:51

private void ShowSeat()
{
//Button lbl = new Button();
Label lbl = new Label();
for (int i = 0; i < seatRow; i++)
{
for (int j = 0; j < seatCol; j++)
{
lbl.Name = "lbl" + (i+1) + "-" +( j+1);
lbl.Click += new EventHandler(lbl_Click);
lbl.BackColor = Color.Yellow;
lbl.AutoSize = false;
lbl.Location = new System.Drawing.Point(59, 60);
lbl.Size = new System.Drawing.Size(50, 25);
lbl.Font = new System.Drawing.Font("宋体", 14.25F, System.Drawing.FontStyle.Regular,System.Drawing.GraphicsUnit.Point,((byte)(134)));
lbl.Text = lbl.Name = "lbl" + (i + 1) + "-" + (j + 1);
lbl.Location = new System.Drawing.Point(60 + (i * 90), 60 + (j * 60));
this.tpSeatList.Controls.Add(lbl);

}
}
}

然后直接在 主窗体调用
...全文
1157 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
yqb_last 2012-03-04
  • 打赏
  • 举报
回复
只有一个label对象啊
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 baishaoge 的回复:]

怎么能 准确定义坐标呢~~ 要 改动 真麻烦
[/Quote]

看看你要吧Label标签显示在哪里,看看那个控件的大小,然后根据那个长和宽来计算。
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 baishaoge 的回复:]

怎么能 准确定义坐标呢~~ 要 改动 真麻烦
[/Quote]

举个例子

Label lbl = null;
public void AddLabel()
{

for (int i = 1; i <= 7; i++)
{
for (int j = 1; j <= 7; j++)
{
lbl = new Label();
lbl.Width = 40;
lbl.Height = 25;
lbl.Text = i + "-" + j;
lbl.TextAlign = ContentAlignment.MiddleCenter;
lbl.BackColor = Color.Red;
lbl.Location = new Point((70* i), (j * 30));
lbl.Top -= 15;
this.tabPage1.Controls.Add(lbl);

//添加Label标签
lbl.Click += new EventHandler(lbl_Click);
Seat s = new Seat { SeatNum = lbl.Text, Color = lbl.BackColor };
labels.Add(lbl.Text, lbl);
c.Seats.Add(s.SeatNum, s);

}
}
}
ziyouli 2012-03-04
  • 打赏
  • 举报
回复
Label lbl = new Label();
我觉得这句话应该在最内层for循环内,不然一个循环下来只对一个lbl对象进行操作。
baishaoge 2012-03-04
  • 打赏
  • 举报
回复
怎么能 准确定义坐标呢~~ 要 改动 真麻烦
baishaoge 2012-03-04
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 zhizhuochangeing 的回复:]

引用 2 楼 dalmeeme 的回复:

lbl.Location = new System.Drawing.Point(60 + (i * 90), 60 + (j * 60));

这句有问题,注释掉就可以显示了。


超出界限了,肯定是你的 坐标 不太合理导致的,像楼上说的一样,先把 lbl.Location = new System.Drawing.Point(60 + ……
[/Quote]
坐标有问题 看来 在更改坐标了
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 dalmeeme 的回复:]

lbl.Location = new System.Drawing.Point(60 + (i * 90), 60 + (j * 60));

这句有问题,注释掉就可以显示了。
[/Quote]

超出界限了,肯定是你的 坐标 不太合理导致的,像楼上说的一样,先把 lbl.Location = new System.Drawing.Point(60 + (i * 90), 60 + (j * 60)); 这行代码 注释掉先,看看虾米 情况,实在不行再改动 坐标的 值。
dalmeeme 2012-03-04
  • 打赏
  • 举报
回复
lbl.Location = new System.Drawing.Point(60 + (i * 90), 60 + (j * 60));

这句有问题,注释掉就可以显示了。
tt糊涂仙 2012-03-04
  • 打赏
  • 举报
回复
这几天也在学这个。。
seatRow 和 seatCol 的初始化赋值没问题吗
如果直接调用这个showseat函数 seatrow和seatcol的值没做传递啊

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧