gpt4 book ai didi

c# - 如何在运行时为动态创建的控件添加事件处理程序?

转载 作者:行者123 更新时间:2023-11-30 13:47:18 25 4
gpt4 key购买 nike

我正在开发 C# Windows 应用程序。我的应用程序从自定义控件库中获取控件(按钮、文本框、富文本框和组合框等),并在运行时将它们动态地放入表单中。我如何使用委托(delegate)为该控件创建事件处理程序?以及如何在特定的自定义控件点击事件中添加业务逻辑?

例如:

我有用户 1、用户 2、用户 3,当用户 1 登录时我只想显示“保存”按钮。当用户 2 仅显示“添加和删除”按钮而用户 3 仅显示“添加和更新”按钮时。文本框和按钮是根据用户登录从数据库表中获取的信息创建的。在这种情况下,我如何处理不同的事件(添加, saving,updating,deleting) for button save,add,delete and update for different users when form is dynamically created controls(save,add,delete and update button object is from same button class)

最佳答案

使用匿名方法:

Button button1 = new Button();
button1.Click += delegate
{
// Do something
};

使用带有显式参数的匿名方法:

Button button1 = new Button();
button1.Click += delegate (object sender, EventArgs e)
{
// Do something
};

匿名方法的 lambda 语法:

Button button1 = new Button();
button1.Click += (object sender, EventArgs e) =>
{
// Do something
};

使用方法:

Button button1 = new Button();
button1.Click += button1_Click;

private void button1_Click(object sender, EventArgs e)
{
// Do something
}

您可以在 MSDN Documentation 中找到更多信息.

关于c# - 如何在运行时为动态创建的控件添加事件处理程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17855428/

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