C#:更改按钮名称并单击函数名称

C#:更改按钮名称并单击函数名称,c#,winforms,visual-studio,windows-forms-designer,C#,Winforms,Visual Studio,Windows Forms Designer,我从C#编程开始,我有一个场景,我创建了一个windows窗体应用程序。我在表单中创建了一个按钮,并双击它来生成相关的单击功能。VisualStudio使用默认名称生成函数 private void button1_Click(object sender, EventArgs e) { } 现在,当我在属性中重命名按钮时,函数名保持不变,这使得按钮和函数之间很难关联,我有一个旧代码,其中有很多这样的情况。因此,我无法删除并重新创建按钮和其他内容 重命名按钮时如何重命名函数?您需要从属性窗口更

我从C#编程开始,我有一个场景,我创建了一个windows窗体应用程序。我在表单中创建了一个按钮,并双击它来生成相关的单击功能。VisualStudio使用默认名称生成函数

private void button1_Click(object sender, EventArgs e)
{

}
现在,当我在属性中重命名按钮时,函数名保持不变,这使得按钮和函数之间很难关联,我有一个旧代码,其中有很多这样的情况。因此,我无法删除并重新创建按钮和其他内容


重命名按钮时如何重命名函数?

您需要从属性窗口更改事件名称。

转到设计器右键单击->属性(F4)->Events->ClickEvent->键入您想要的名称,然后单击此按钮将使用您输入的名称创建click event

编辑代码时,只需键入新名称代替旧名称,即可更改方法的名称。就像更改任何文本一样

然后,您可以通过以下方式验证控件是否仍使用该事件:

  • 转到表单设计器并选择该控件。检查其属性/事件,确保名称仍然对齐
  • 转到表单设计器生成的代码,找到它将方法分配给事件的位置,并在需要更改时进行更改
  • 这两种方法中的任何一种都应该自动更新另一种,尽管我认为为了与表单设计过程的其余部分保持一致,通常更倾向于使用第一种方法


    请注意,方法名称可以是您喜欢的任何名称,没有固定的规则规定它必须是
    controlName\u eventName(objectsender,EvenArgs e)
    。例如,如果有多个控件共享一个事件处理程序,则不必决定哪个控件将成为方法名称中的控件。您可以为其指定任何通用名称,例如
    saveFormChanges(objectsender,EvenArgs e)
    ,但仍可以将其指定为该事件的处理程序。

    更改
    按钮1\u单击代码中的方法名为新名称,然后按ctrl+。(句号)并选择重命名。或者,单击灯泡并选择重命名

    函数名不需要与按钮名匹配,只是约定使您更容易理解哪个元素绑定到哪个事件上的哪个函数

    如果输入
    FormName.Designer.cs
    文件,您将找到
    InitializeComponent
    函数,该函数包含所有表单元素的属性设置,包括它们的事件绑定。例如,您可能会在那里看到类似的内容:

    this.button1.Click += new System.EventHandler(this.button1_Click);
    
    其中,
    button1
    是元素的名称,
    Click
    是该元素事件的名称,
    button1\u Click
    是处理该事件的函数的名称

    如果您处于表单
    FormName.cs[design]
    的设计模式,您可以在VisualStudio
    Properties
    窗口(解决方案资源管理器
    选项卡旁边的一个选项卡)中找到lightning图标。在该图标下,您将在设计器中找到当前选定元素的所有可能事件的列表。在按钮示例中,它应该如下所示:


    您可以在此处或在
    FormName.Designer.cs
    文件中处理事件绑定,但最好通过此视图处理,因为
    Designer
    文件的内容是自动生成的
    InitializeComponent
    函数随后在窗体的构造函数中调用,该构造函数根据设计器文件的设置初始化窗体。

    右键单击函数名并选择重命名。该名称将突出显示(在我的系统上为绿色,请参见下图)。编辑名称,然后点击应用按钮。按钮的click事件将正确地指向新重命名的方法


    您是否尝试过单击函数名并按f2;)
    private void yournewbuttonname\u单击(对象发送者,EvenArgs e)
    手动将其更改为该值?