1

我有一个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 }; 和工作!

4

5 回答 5

3

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

void change(object sender, EventArgs e)

并写为schimbare.Click += change;

你也可以使用这个语法

schimbare.Click += (s,e)=>
            {
                //your code
            };
于 2012-09-07T13:21:53.523 回答
2

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

schimbare.Click += change;

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

private void change(object sender, EventArgs e)
于 2012-09-07T13:21:50.153 回答
1

尝试

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

另请参阅此链接以获取更多信息。

于 2012-09-07T13:21:00.717 回答
0

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

干杯

schimbare.Click += change;
于 2012-09-07T13:23:53.960 回答
0

你需要捕捉这样的事件:

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

希望能帮助到你...

于 2012-09-07T13:25:17.967 回答