是否有为控件添加事件方法的快捷方式?如果我有一个按钮,我想添加Click方法而不必输入或切换到设计视图。
编辑: 认真!当我在VB中执行此操作时,我有一个所有控件及其事件的下拉列表。对C#来说这么难吗?
答案 0 :(得分:8)
的Winforms? Web表单?什么?
一个选项是(在初始化之后)挂钩事件,你的自我智能提供事件名称,[Tab] [Tab]创建方法存根 - 即。
public MyForm()
{
InitializeComponent()
someButton.Click += (press [tab][tab] now)
}
它完成其余的工作......同样在适当的地方以网络形式进行。
这会给你:
public MyForm()
{
InitializeComponent();
someButton.Click += new EventHandler(someButton_Click);
}
void someButton_Click(object sender, EventArgs e)
{
throw new NotImplementedException(); // your code here ;-p
}
答案 1 :(得分:3)
您是否考虑过创建代码段?这是我用来创建挂钩事件的匿名方法的片段。
<?xml version="1.0" encoding="utf-8" ?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<Title>anonymous</Title>
<Shortcut>__anonymous</Shortcut>
<Description>Code snippet for an anonymous method</Description>
<Author>Andrew</Author>
<SnippetTypes>
<SnippetType>Expansion</SnippetType>
</SnippetTypes>
</Header>
<Snippet>
<Declarations>
<Literal>
<ID>event</ID>
<Default>base.Init</Default>
<ToolTip>Event to attach</ToolTip>
</Literal>
<Literal>
<ID>args</ID>
<Default>EventArgs</Default>
<ToolTip>Event argument type</ToolTip>
</Literal>
<Literal>
<ID>name</ID>
<Default>args</Default>
<ToolTip>Event arg instance name</ToolTip>
</Literal>
</Declarations>
<Code Language="csharp"><![CDATA[$event$ += delegate(Object sender, $args$ $name$) {
$end$
};]]>
</Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>
同样here is an article解释如何创建它们以及它们如何工作。
答案 2 :(得分:1)
public partial class MyUserControl : System.Web.UI.UserControl
{
public delegate void ButtonClickEventHandler(object sender,EventArgs e);
public Event ButtonClickEventHandler Button_Click;
protected void btnLogin_Click(object sender, EventArgs e)
{
if (Button_Click!= null)
Button_Click(sender,e);
}
}
Default.aspx的
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
MyUserControl.Button_Click+= MyUserControl_Button_Click;
}
void MyUserControl_Button_Click(object sender,EventArgs e)
{ }