gpt4 book ai didi

c# - 如果有 'n' 个按钮,如何在不从属性手动创建的情况下自动为按钮生成事件?

转载 作者:太空宇宙 更新时间:2023-11-03 21:38:52 25 4
gpt4 key购买 nike

集成环境:Visual Studio 2010语言:c#.net

我正在从属性中手动为按钮生成事件。但是,如果假设有 20 个按钮执行相同的任务,如“鼠标悬停”和“鼠标离开”,它会变得非常冗长。那么,有没有办法复制所有其他按钮的事件?

最佳答案

您可以为所有按钮订阅同一个事件处理程序:

foreach(var button in Controls.OfType<Button>())
{
button.MouseHover += Button_MouseHover; // add handler
button.MouseLeave += Button_MouseLeave;
}

在该处理程序中,您甚至可以通过将事件源转换为按钮类型来确定引发了哪个按钮:

private void Button_MouseHover(object sender, EventArgs e)
{
var button = (Button)sender; // sender is one of buttons
// use button.Name
}

上面的代码订阅了所有按钮的事件。但是如果你想过滤它们(例如按名称),你可以添加过滤:

Controls.OfType<Button>().Where(b => b.Name.StartsWith("foo"))

关于c# - 如果有 'n' 个按钮,如何在不从属性手动创建的情况下自动为按钮生成事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20418756/

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