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 イベントに「change」メソッドの戻り値を追加しています。したがって、コードをこれに変更すると、問題が解決するはずです (括弧は余分です!)。あなたが作業しているプラ​​ットフォームがわかりません。クリックのデリゲートにはいくつかの引数が必要であることに注意してください。

乾杯

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 に答える