在VS2008中,如果我双击事件处理程序VS,则创建一个具有默认名称的默认事件处理程序,例如: combobox1_SelectedIndexChanged。
比如说,我现在将combobox1重命名为cbStatus。它仍然具有相同的事件处理程序,所以我现在将其更改为cbStatus_SelectedIndexChanged。
有没有办法,除了旧的事件处理程序之外,VS可以将初始的combobox1_SelectedIndexChange更改为cbStatus_SelectedIndexChange而不是生成新的cbStatus事件处理程序?因为每次我必须将代码剪切并粘贴到新的事件处理程序,然后删除旧的。
此外,如果我已经定义了初始事件处理程序,然后不再需要处理程序,我不能简单地从代码中删除处理程序,因为表单设计者然后抱怨它无法找到原始事件处理程序。有没有办法让VS可以自动从表单设计器中删除事件处理程序的赋值?
我似乎整天都在剪切和粘贴,并从表单设计器代码中删除事件处理程序分配。
答案 0 :(得分:10)
重命名控件时,还应重命名事件处理程序。正确的方法是重构代码。
要执行此操作,只需在Visual Studio代码编辑器中右键单击事件处理程序的名称,然后选择Refactor -> Rename...
这将允许您自动更改的名称它的名称使用
在事件处理程序的情况下,它可能只在另一个地方使用(代码中的点被添加到事件中),因此手动更改它并不会太麻烦。你可以将这种技术应用于几乎所有的东西,当你从几个不同的地方引用你正在改变的东西时,它非常有用。
答案 1 :(得分:2)
您只需在生成的代码中找到combobox1_SelectedIndexChange
方法声明的位置,并将名称更改为cbStatus_SelectedIndexChange
。
更改方法名称后,还必须更新注册处理程序的行:
cbStatus.SelectedIndexChange += new
SelectedIndexChangeEventHandler(cbStatus_SelectedIndexChange);
答案 2 :(得分:1)
只需键入新名称,然后重新编译即可。我的意思是 - 改变
protected void combobox1_SelectedIndexChanged(object sender, EventArgs e)
{
}
到
protected void renamedcombobox_SelectedIndexChanged(object sender, EventArgs e)
{
}
然后重新编译
Visual Studio将抛出编译时错误,因为预期的方法不再存在。
双击“输出”窗口中的错误,转到错误处理程序的分配,并更改错误处理程序以匹配新的函数名称。
修改 - 添加
上面的步骤将引导您进入Justin的回答中描述的代码行......
结束修改
我知道这很清楚,但是尝试一下,你会很难或没有困难地解决它。
答案 3 :(得分:0)
如果单击而不是双击以自动创建事件处理程序,则可以指定所需的处理程序名称。你可以使它像“SelectedStatusChangedHandler”,它独立于组合框的变量名。然后按“输入”并让VS为您创建处理程序。