1

C# の Windows フォームを使用していて、助けが必要です。他のボタンを作成してリスト「ボタン」に追加するボタンがあります。作成した各ボタンをクリックすると、それ自体が破棄される必要があります。

        //create new button
        Button newButton = new Button();
        newButton.Name = "aButt"+buttNum;
        Debug.WriteLine(newButton.Name);
        buttNum++;

        newButton.Text = "Button!";
        newButton.Height = 50;
        newButton.Width = 50;

        //controls where the new button gets placed
        if (curX > 9)
        {
            curX = 0;
            curY++;
            //defines the point the button spawns
            newButton.Location = new System.Drawing.Point((curX * 55)+10, curY * 55);
            //increments X to avoid placing a button on top of another
            curX++;

        }
        else
        {
            newButton.Location = new System.Drawing.Point((curX * 55) + 10, curY * 55);
            curX++;
        }


        newButton.UseVisualStyleBackColor = true;
        newButton.Click += new System.EventHandler(this.removeThisButton);
        buttons.Add(newButton);
        this.Controls.Add(newButton);

イベントリスナーを設定しましたが、送信者はボタン自体に関する実際の情報を持っていないため、それを取り除く方法がわかりません。

どんな助けでも大歓迎です!

4

2 に答える 2

2

クリック イベント ハンドラーには署名があります。

private void myButton_Click(object sender, EventArgs e)

がイベントのobject senderソースです。それをにキャストするだけでButton、クリックされたものがあります:

    Button whatWasClicked = sender as Button;
    if(whatWasClicked == null)
        // never mind -- it wasn't a button...
于 2013-09-10T21:43:39.847 に答える