C# 按钮在C中应该是指它自己#

C# 按钮在C中应该是指它自己#,c#,C#,假设存在将字母表中的所有字母设置为文本的按钮。 我想在这些按钮中调用一个函数,并使用这个字母作为参数。 我能以某种方式为每个按钮使用相同的代码吗 差不多 functionname(this.Text); 问题是,“this”指的是表单,而不是特定的按钮。尝试这样的事件处理程序: protected button1_click(sender as object, e as EventArgs) { var button1 = (Button) sender; if (button

假设存在将字母表中的所有字母设置为文本的按钮。 我想在这些按钮中调用一个函数,并使用这个字母作为参数。 我能以某种方式为每个按钮使用相同的代码吗

差不多

functionname(this.Text);

问题是,“this”指的是表单,而不是特定的按钮。

尝试这样的事件处理程序:

protected button1_click(sender as object, e as EventArgs) {
    var button1 = (Button) sender;
    if (button1.Text == "A") {
        //for example
    }
}
然后,您需要使用
AddHandler…
在“加载”中添加事件处理程序,或者如果它是Asp.net页面,您可以使用
onClick=“button1\u click”
属性


要获得更具体的答案,我需要更多的细节。

在大多数事件机制中,您可以获得事件的来源;在经典的win表单中,这通常被称为“发送方”。您可以将发送者强制转换为您所知道的类型,或者一些常见的基类型。例如:

void SomeEventHandler(object sender, SomeEventArgs e) {
    string text = ((Control)sender).Text;
    // ...
}
因此,一个事件处理程序可以处理所有按钮


这在不同的基础结构/工具(WCF、XNA等)之间可能会有细微的差异,但基本上应该保持相似。

您可以对表单上的每个按钮使用相同的事件处理程序:

private void Form_Load(object sender, System.EventArgs e)
{
    foreach (var btn in this.Controls.OfType<Button>())
    {
        btn.Click += AllButtonClick;
    }
}

private void AllButtonClick(Object sender, EventArgs e)
{
    Button btn = (Button)sender;
    String buttonText = btn.Text;
}
private void Form\u加载(对象发送方,System.EventArgs e)
{
foreach(this.Controls.OfType()中的var btn)
{
点击+=全部按钮点击;
}
}
私有void AllButtonClick(对象发送方,事件参数e)
{
按钮btn=(按钮)发送器;
字符串buttonText=btn.Text;
}

请提供更多信息:您是否在使用Windows窗体或WPF或其他工具?可能提供一些您已经尝试过的代码示例。另外,是什么触发了此函数的调用?例如,是被点击的按钮吗?