C#WinForm如何给控件的Click事件传送参数?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#WinForm如何给控件的Click事件传送参数?相关的知识,希望对你有一定的参考价值。

在动态创建窗体控件的时候定

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,我想单独显示另外一个动态的参数。

参考技术A 首先一楼的回复应该是你想要的解决方案了.

我这里在啰唆两句.

private void MyLinkClick(object sender, EventArgs e)

这个里面的sender其实就是触发这个事件的源控件.
那么你在处理这个函数的时候就可以,通过强制类型转换.将他转换成你指定的类,然后在访问它.
Label lbl=(Label)sender;
MessageBox.Show(lbl.Name+""+lbl.Ttext);
等.通过这个原理,你可以将执行相同功能的代码的事件指向为通一个方法,这样就可以实现事件代码的重用了.
参考技术B MessageBox.Show("ShowText");
改为
if (sender != null && sender is Label)
MessageBox.Show((sender as Label).Text);本回答被提问者采纳
参考技术C 你每次点击的时候,对象不一样,如果你想显示另外一个动态的参数,你需要知道那个参数和你点击的对象有什么逻辑关系,找出逻辑关系,根据关系来显示。你这样一说,还需要补充条件才能给你回答 参考技术D private void MyLinkClick(object sender, EventArgs e)

for(int i = 0; i < 5; i++)

MessageBox.Show("这里是连接"+i);




这样就行

winform中如何获取鼠标所点击的控件名称

我在界面上设置了100个Button,运行界面时用鼠标点击任何一个Button都能获取该Button的名称,但是不可能100个Button都创建一个事件,有没有公共的处理办法,请高手帮忙如何实现。我是用VB写的。

你把100个按钮的Click事件都指定成同一个,比如Button_Click
然后再这个事件里的sender就是触发这个事件的按钮,
做个强制类型转换。
(sender as Button).Name
就可以了。。。
参考技术A 动态绑定控件事件
遍历当前窗体或对应容器的控件,绑定事件即可.
参考技术B 把你的100BUTTON 全部绑定一个事件,不是有个事件源E么 ,就就用e.string(); 参考技术C 把sender转换为Button
((BUTTON)sender).text

以上是关于C#WinForm如何给控件的Click事件传送参数?的主要内容,如果未能解决你的问题,请参考以下文章

winform中如何获取鼠标所点击的控件名称

Winform如何获取一堆控件中某个的Tag

C#winform 主窗体上的用户控件怎样调用主窗体的一个方法!

webbrowser控件如何实现提交的时候触发Winform窗体上button的单击事件

winform中如何判断窗体上的控件是按钮

C# winform 怎样获取某一个控件,它实际注册的所有事件(或者某一个事件)!