c# - 用于创建方法的 for 循环,或一些等效的方法?

标签 c# for-loop methods runtime

我正在处理一个项目,我处于管理员需要接受新用户进入系统的情况。我有一个只有管理员可以访问的表格,其中显示了所有等待申请者的列表。我已经了解了如何在运行时创建按钮以及如何为点击事件添加事件处理程序,但该处理程序需要一个同名的方法才能运行。

显然,除非我弄错了,否则我不能只将方法代码放在 for 循环中。我如何让该计划能够支持可能无限数量的申请者?

void AcceptUsersAdminLoad(object sender, EventArgs e)
{       
    //FOR LOOP - To be finished. Will read an xml file to find out # to loop.
    Button newButton = new Button();
    newButton.Click += new System.EventHandler(newButtonClick);
    newButton.Text = "Accept";
    Panel1.Controls.Add(newButton);

}

private void newButtonClick (Object sender, System.EventArgs e){

}

这行得通,但正如我所说,仅适用于一个按钮。复制该方法并在其名称上附加一个数字一百次相对轻松,但我更愿意找到一种支持更多的方法。

最佳答案

您可以对所有按钮使用相同的方法! sender 参数将告诉您哪个按钮是源,只需将其转换为按钮即可。您可以在按钮的 .Tag() 属性中存储某种 ID,这样您就知道您正在与谁一起工作(当您创建它们时,分配它)。

private void newButtonClick (Object sender, System.EventArgs e){
    Button btn = (Button)sender;
    // ... do something with "btn" in here ...
}

关于c# - 用于创建方法的 for 循环,或一些等效的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27365188/

相关文章:

java - 从方法获取值 (java)

c# - 如何序列化接口(interface)类型成员

c# - LINQ 计数 其中 1 列有两个 int

c# - 不受约束的类型参数转换

java - 循环中 ArrayList 的错误初始化

for-loop - Gnuplot 5.0补丁lvl1在WIN 8.1上崩溃

ruby-on-rails - 为实例方法起别名时理解单例类

c# - 在 C# 中检查 double 是否为整数的好方法是什么?

c - 以下函数被调用了多少次?

java - 如何在 BST 中调用检索方法