我有一些button.Click事件的问题

时间:2012-09-07 13:18:56

标签: c# events button click

当我按下按钮时,我想要运行一个函数private void change ()。我有Button schimbare = new Button();,如果我要按,则运行该功能。

我尝试schimbare.Click += change();但不行。什么是好的命令?

这是代码:

    using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Drawing;

namespace Programarii
{
    class InputBoxOptiuni
    {
        static TextBox textBox1 = new TextBox();

        /// <summary>
        /// Displays a dialog with a prompt and textbox where the user can enter information
        /// </summary>
        /// <param name="title">Dialog title</param>
        /// <param name="promptText">Dialog prompt</param>
        /// <param name="value">Sets the initial value and returns the result</param>
        /// <returns>Dialog result</returns>
        public static DialogResult Show(string title, string promptText, string informati, string mesaj, ref int ora, ref int minut30, ref int minut15, ref int douaore, ref int minut10, ref int minut5, ref int pornire2, ref int anuntare2, ref int cuparola, ref string parola, ref string email, ref int expirare, ref int cateminute, ref int vl, ref int culimba, string scurtaturi, string scurtaturi2, string format, ref int tipformat)
        {

Button schimbare = new Button();

schimbare.Click += change;

}

        private void change(object sender, EventArgs e)
        {

        }
    }
}

对于所有回答我的人,tnx。

我尝试:

private void change(object sender, EventArgs e) and schimbare.Click += change; 

但不起作用。我尝试使用schimbare.Click += (s,e)=> { //your code };并且有效!

5 个答案:

答案 0 :(得分:3)

您的方法签名应该是这样的:

void change(object sender, EventArgs e)

并写为schimbare.Click += change;

您也可以使用此语法

schimbare.Click += (s,e)=>
            {
                //your code
            };

答案 1 :(得分:2)

删除() - 您订阅到事件处理程序,而不是调用它(使用()将调用change)。

schimbare.Click += change;

请注意(除了非标准命名),您的change函数应该具有EventHandler签名(它没有 - 它不带参数),将其更改为:

private void change(object sender, EventArgs e)

答案 2 :(得分:1)

尝试

schimbare.Click += new EventHandler(this.change);

有关详细信息,另请参阅this link

答案 3 :(得分:0)

等等,等等!!!您将“更改”方法的返回值添加到Click事件中!因此,将代码更改为此应解决您的问题(括号是额外的!)。我不知道您正在使用的平台,请注意,click的代表必须有一些参数。

干杯

schimbare.Click += change;

答案 4 :(得分:0)

您需要捕捉这样的事件:

 private void schimbare_Click(object sender, EventArgs e)
        {
           change();
        }

希望它有所帮助...