3

在我的winform中,在我的表单的designer.cs部分

this.Button1.Text = "&Click";
this.Button1.Click += new System.EventHandler(this.Button1_Click);

在 form.cs 中

 private void Button1_Click(object sender, System.EventArgs e)
 {
     //Code goes here.
 }

在表单的一部分中,我有一个树视图,当树视图内容展开时,我需要重命名上面的按钮并连接一个不同的事件

  Button1.Name = "ButtonTest";
  ButtonTest.Click += new System.EventHandler(this.ButtonTest_Click);

但是,这失败了,说找不到 ButtonTest,我如何动态更改按钮的名称并调用不同的单击事件方法?

 private void ButtonTest_Click(object sender, System.EventArgs e)
 {
     //Code goes here.
 }

一旦这被称为 ButtonTest_Click,我需要将其重命名为 Button1,有什么想法吗?

4

2 回答 2

6

Button1指一个变量名。变量指向Button具有Name属性的类型的实例。如果您更改Name属性的值,它不会更改变量的名称。您仍然需要将按钮称为button1. 事实上,它并没有真正改变按钮Name属性的值。该Name属性实际上只是为了帮助 Windows 窗体设计器而存在。

如果要将事件处理程序从一种方法更改为另一种方法,则必须先取消订阅原始处理程序,然后再订阅新处理程序。只需将您的代码更改为:

Button1.Name = "ButtonTest";
Button1.Click -= this.Button1_Click;
Button1.Click += this.ButtonTest_Click;
于 2012-08-07T23:59:26.677 回答
0

这可以通过几种方式完成:

  1. 从菜单:编辑 -> 重构 -> 重命名

  2. 通过方法名称上的上下文菜单:Refactor -> Rename

  3. 将光标放在方法名称上并键入 Alt + Shift + F10 然后选择重命名

  4. 将光标放在方法名称上,然后按 F2

于 2017-05-10T15:56:15.550 回答