C#WinForm如何给控件的Click事件传送参数?
在动态创建窗体控件的时候定LableMyLink;for(inti=0;i<5;i++){MyLink.Text="这里是连接:"+i;MyLink.Click+=MyL...
在动态创建窗体控件的时候定
Lable MyLink;
for(int i = 0; i < 5; i++)
{
MyLink.Text = "这里是连接:" + i;
MyLink.Click += MyLinkClick;
Controls.Add(MyLink);
}
MyLinkClick函数如下:
private void MyLinkClick(object sender, EventArgs e)
{
MessageBox.Show("ShowText");
}
我想在点击Lable执行MyLinkClick函数执行的时候弹出不同的提示框信息,请问各位前辈怎么做。
谢谢hibok2,但我不想提示Label.Text,我想单独显示另外一个动态的参数。 展开
Lable MyLink;
for(int i = 0; i < 5; i++)
{
MyLink.Text = "这里是连接:" + i;
MyLink.Click += MyLinkClick;
Controls.Add(MyLink);
}
MyLinkClick函数如下:
private void MyLinkClick(object sender, EventArgs e)
{
MessageBox.Show("ShowText");
}
我想在点击Lable执行MyLinkClick函数执行的时候弹出不同的提示框信息,请问各位前辈怎么做。
谢谢hibok2,但我不想提示Label.Text,我想单独显示另外一个动态的参数。 展开
4个回答
展开全部
首先一楼的回复应该是你想要的解决方案了.
我这里在啰唆两句.
private void MyLinkClick(object sender, EventArgs e)
这个里面的sender其实就是触发这个事件的源控件.
那么你在处理这个函数的时候就可以,通过强制类型转换.将他转换成你指定的类,然后在访问它.
Label lbl=(Label)sender;
MessageBox.Show(lbl.Name+""+lbl.Ttext);
等.通过这个原理,你可以将执行相同功能的代码的事件指向为通一个方法,这样就可以实现事件代码的重用了.
我这里在啰唆两句.
private void MyLinkClick(object sender, EventArgs e)
这个里面的sender其实就是触发这个事件的源控件.
那么你在处理这个函数的时候就可以,通过强制类型转换.将他转换成你指定的类,然后在访问它.
Label lbl=(Label)sender;
MessageBox.Show(lbl.Name+""+lbl.Ttext);
等.通过这个原理,你可以将执行相同功能的代码的事件指向为通一个方法,这样就可以实现事件代码的重用了.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
MessageBox.Show("ShowText");
改为
if (sender != null && sender is Label)
MessageBox.Show((sender as Label).Text);
改为
if (sender != null && sender is Label)
MessageBox.Show((sender as Label).Text);
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你每次点击的时候,对象不一样,如果你想显示另外一个动态的参数,你需要知道那个参数和你点击的对象有什么逻辑关系,找出逻辑关系,根据关系来显示。你这样一说,还需要补充条件才能给你回答
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
private void MyLinkClick(object sender, EventArgs e)
{
for(int i = 0; i < 5; i++)
{
MessageBox.Show("这里是连接"+i);
}
}
这样就行
{
for(int i = 0; i < 5; i++)
{
MessageBox.Show("这里是连接"+i);
}
}
这样就行
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询