winforms 如何给按钮点击事件函数赋词

tquggr8v  于 2023-03-19  发布在  其他
关注(0)|答案(3)|浏览(188)

我想给予按钮单击事件创建的函数一个字符串输入,我该怎么做?

public async static void De_Click(object sender, EventArgs e,String Name) 
{
    //Code
}

埃罗尔

De.Click += new EventHandler(De_Click);

我知道这个错误是因为函数缺少一个输入,但是我怎样才能给予它一个输入,这样它的click事件就没有问题了呢?

8xiog9wr

8xiog9wr1#

LarsTech是对的,您需要使用按钮的Tag属性向按钮事件处理程序传递一个额外的字符串参数,如下所示

{
//create a new button instance
var button = new Button();
//define your extra sting param
var extraParam = "Am the extra parameter";
//use the tag property to store it
button.Tag = extraParam;
//register an event handler for the button
button.Click += ButtonHandler;
}

//in the method event handler do this
private void ButtonHandler(object sender, EventArgs e){
//get the parameter like below
var param = button.Tag as string; 
}

如果字符串来自用户输入,则可以在类中声明一个字符串变量,并将其初始化为空状态,然后在获得用户输入后,使用用户输入更新刚才声明的变量,并将其赋值给按钮的Tag属性,就像我的代码中那样。

inkz8wg9

inkz8wg92#

字符串是变量吗?它来自用户输入吗?通常的方法是读取事件处理程序内文本框的值。如果没有涉及文本框,您可以始终编写一个自定义事件处理程序委托。在您的情况下如何工作实际上取决于字符串来自何处。

tjrkku2a

tjrkku2a3#

您可以使用assignHandler和lambda表达式。lambda表达式只调用De_Click方法,并将sender参数和someData参数传递给setup方法。

private void setup(string someData)
{
    Object.assignHandler((sender,args) => {
        De_Click(sender, "name");
    });
}

public void De_Click(Object sender, String Name)
{
}

相关问题