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

3
有没有一种快捷方式来为控件添加事件方法?如果我有一个按钮,我想添加点击方法而不必手动输入或切换到设计视图。
编辑:
真的!当我在VB中这样做时,我有一个下拉列表,列出了所有控件及其事件。C#做起来难道那么难吗?
3个回答

10

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
}

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>

此外,这篇文章解释了如何创建它们以及它们的工作原理。


看起来很不错,我会尽快尝试的。谢谢你提供的信息。 - Barbaros Alp

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接