有没有一种快捷方式来为控件添加事件方法?如果我有一个按钮,我想添加点击方法而不必手动输入或切换到设计视图。
编辑:
真的!当我在VB中这样做时,我有一个下拉列表,列出了所有控件及其事件。C#做起来难道那么难吗?
编辑:
真的!当我在VB中这样做时,我有一个下拉列表,列出了所有控件及其事件。C#做起来难道那么难吗?
Winforms?Webforms?这是什么?
其中一种选择是(初始化后)自己挂钩事件 - 智能感知提供事件名称,[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
}
你是否考虑过创建代码片段?这里是我使用的一个代码片段,用于创建匿名方法并将其连接到事件。
<?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>
此外,这篇文章解释了如何创建它们以及它们的工作原理。
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)
{ }