如何在.NET中以编程方式添加事件处理程序到按钮?

3
我试图在开发Web应用程序时尽可能使用最强的面向对象编程(OOP),但我在使用代码创建对象时添加事件处理程序遇到了问题。我确定这是一个相当简单的解决方案,但我不知道下一步该尝试什么。以下是我一直在尝试让按钮按下后执行某些操作的测试代码。
(假设在“int i;”这行上有一个断点)
    Button b = new Button();
    b.Text = "Do Something";
    b.Attributes.Add("runat", "server");
    b.Attributes.Add("OnClick", "click");
    form1.Controls.Add(b);

    private void click(object sender, EventArgs e)
    {
        int i;
    }

由于这是由我的Page_Load创建的新按钮,我不能只是硬编码XHTML。调试永远不会触发我的断点。我对CheckBox也没有更多的成功。


通常在C#中使用委托函数。你具体是针对哪个框架? - Richard J. Ross III
2个回答

11

您需要订阅Click事件:

Button b = new Button();
b.Text = "Do Something";
b.Click += click;
form1.Controls.Add(b);

private void click(object sender, EventArgs e)
{
    int i;
}

通过将onclick属性添加到按钮的Attributes集合中,它将呈现为HTML输入标记上的属性。在这种情况下,您可以使用它在客户端执行一些JavaScript代码。

b.Attributes.Add("onclick", "alert('Hey')");

//Will render the button as
<input type="submit" name="x" value="Do Something" onclick="alert('Hey')">

1

你能做到:

Button b = new Button();
b.Text = "Do Something";
b.Click += new EventHandler((s, ev) =>
                        {
                            int i;
                        });
form1.Controls.Add(b);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接