gpt4 book ai didi

c# - 从字符串名称调用方法

转载 作者:行者123 更新时间:2023-11-30 23:11:19 24 4
gpt4 key购买 nike

我正在使用 C#,并且我有一个实例化大量 PictureBox 按钮的项目。我还编写了所有单击、悬停、mouseUp、mouseDown 事件方法。如何从字符串名称调用方法,这样我就不必手写所有的方法?提前致谢,卡森

Dictionary<string, PictureBox> buttonList = new Dictionary<string,PictureBox>();
string buttonName = "button_file";

buttonList[buttonName].Click += new EventHandler(buttonName + "_click");

public void button_file_click(object sender, EventArgs e)
{
// do on click stuff here
}

最佳答案

如果你设置按钮的Name属性,你可以这样:

buttonList[buttonName].Name = buttonName;
buttonList[buttonName].Click += ButtonClick;

并且只有一个方法可以处理所有按钮的点击,但要根据它们的名称:

public void ButtonClick(object sender, EventArgs e)
{
var btn = (Button)sender;
btn.Text = btn.Name; //only for demo
}

但是你完全可以自己写方法:

buttonList[buttonName].Click += (s,e)=> clickEvent(buttonList[buttonName], buttonName);

这是一个简短的 lambda 函数,它接受相应的 Click 事件签名参数并触发您的自定义函数,clickEvent:

public void clickEvent(Button thePressedButton, string nameOfPresedButton)
{
thePressedButton.Text = btn.nameOfPresedButton; //only for demo
}

关于c# - 从字符串名称调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44770888/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com