如何通过获取数值后自动生成对应数值数量控件

RogerZR 2010-09-27 01:24:45
想做通过获取数值后自动生成对应数量控件,如linklabel。之后在这么多个的linklable的有着内容大致相同的点击事件,只是其中有几个数值不同,变化的数值可以仅仅是linklable的不同的编号的值,不知道能不能实现?
具体如下图示意。麻烦各位高手编码示范下。


之后在文本框中输入3,点击确定按钮,软件就生成出3个linklable。


之后在每个linkLabel_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)方法中,包含一段仅仅是linklable的编号不同的代码。如,messagebox.show("点击了{0}",它的编号)。就这样。

麻烦各位高手编码示范下。不是很懂。谢了。
...全文
253 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
RogerZR 2010-09-29
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 zoeforever 的回复:]
C# code

private void button1_Click(object sender, EventArgs e)
{
int lCount = Convert.ToInt16(this.textBox1.Text);
for (int i = 0; i < lCount; i++)
……
[/Quote]

3Q牛人。确实可以用哈!!你到这个相同问题的贴子上露个脸(我发重复了问题),再给你加20分哈!
http://topic.csdn.net/u/20100927/13/cf692259-08de-49d8-a700-b01884503eed.html
zoeforever 2010-09-28
  • 打赏
  • 举报
回复

private void button1_Click(object sender, EventArgs e)
{
int lCount = Convert.ToInt16(this.textBox1.Text);
for (int i = 0; i < lCount; i++)
{
LinkLabel ll = new LinkLabel();
ll.Text = i.ToString();
ll.Location = new Point(100, i * 50 + 100);
ll.Tag = i;
ll.LinkClicked += new LinkLabelLinkClickedEventHandler(ll_LinkClicked);
this.Controls.Add(ll);
}
}

void ll_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
LinkLabel ll = (LinkLabel)sender;
MessageBox.Show(ll.Tag.ToString());
}
//LinkLabel的TAG属性为OBJECT类型,你可以放入任何你想要的类型,使用的时候在强制转换过来就可以了。
RogerZR 2010-09-28
  • 打赏
  • 举报
回复
有没人会啊?
RogerZR 2010-09-27
  • 打赏
  • 举报
回复
这个也要我自己手动写吗?那不是就违背了我的初衷了,想自动生成。难道真的不行?[Quote=引用 8 楼 rock870210 的回复:]
C# code

Label lblTitle = new Label();
lblTitle.Text = value;
lblTitle.AutoSize = false;
lblTitle.TextAlign = ContentAlignment.MiddleRight;
lblTit……
[/Quote]
Rock870210 2010-09-27
  • 打赏
  • 举报
回复

Label lblTitle = new Label();
lblTitle.Text = value;
lblTitle.AutoSize = false;
lblTitle.TextAlign = ContentAlignment.MiddleRight;
lblTitle.Location = new System.Drawing.Point(3, formHeight);
lblTitle.Size = new Size(140,height);
panel1.Controls.Add(lblTitle);

示例
Rock870210 2010-09-27
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 rogerzr 的回复:]
没啥用处,根本就没有出现。

引用 4 楼 heiha008 的回复:
for(int i=0,i<count,i++){

this.Controls.Add(new linklabel());

}
[/Quote]
肯定出不来了,要先实例化LinkLabel,然后设置它的Location、Size等属性。
RogerZR 2010-09-27
  • 打赏
  • 举报
回复
没啥用处,根本就没有出现。[Quote=引用 4 楼 heiha008 的回复:]
for(int i=0,i<count,i++){

this.Controls.Add(new linklabel());

}
[/Quote]
zhang_zhc 2010-09-27
  • 打赏
  • 举报
回复
关注~~~
heiha008 2010-09-27
  • 打赏
  • 举报
回复
for(int i=0,i<count,i++){

this.Controls.Add(new linklabel());

}
heiha008 2010-09-27
  • 打赏
  • 举报
回复
for(int i=0,i<count,i++){

this.Controls.Add(new linklabel);

}
RogerZR 2010-09-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 swwllx 的回复:]
额 这样做有啥意义 我要是输入个10000 你给我跳出这么多控件啊
[/Quote]

只是有做类似这个的需要。一般控制在10以内。没那么多。你做的出来吗?帮帮忙哈。
三岁、就很帅 2010-09-27
  • 打赏
  • 举报
回复
额 这样做有啥意义 我要是输入个10000 你给我跳出这么多控件啊

111,129

社区成员

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

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

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