为控件快捷方式创建事件方法 - Visual Studio

时间:2009-01-14 13:28:53

标签: c# visual-studio-2008

是否有为控件添加事件方法的快捷方式?如果我有一个按钮,我想添加Click方法而不必输入或切换到设计视图。

编辑: 认真!当我在VB中执行此操作时,我有一个所有控件及其事件的下拉列表。对C#来说这么难吗?

3 个答案:

答案 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)
        { }