Как ссылаться на имя кнопки, используя взаимные события в WinForms? - PullRequest
0 голосов
/ 31 марта 2020

У меня есть простой код ниже, и я хочу, чтобы, если button1 нажал, textBox изменилось на button1 is clicked. И если button2 нажал, то textBox изменился на button2 is clicked.

Но я хочу сослаться на имя текущей функции (button1_Click или button2_Click).

На Form1 [Design] стр. Там на странице «События» используется маленькая стрелка mutual events.

using System;
using System.Windows.Forms;

namespace WindowsFormsApp2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            textBox1.Text = this.Name + "is clicked"; 
                // "this" isn't work. I think it'd Form1. How to button1 and button2
        }
    }
}

1 Ответ

1 голос
/ 31 марта 2020

Параметр sender содержит необходимые данные, вам просто нужно сначала привести его к Button

this.textBox1.Text = (sender as Button).Text;

В идеале вы бы фактически осуществили проверку на нулевое значение, на случай, если метод используется в другом месте чем-то, что не как кнопка! Тогда у вас будет

if ((sender as Button) != null)
    this.textBox1.Text = (sender as Button).Text;

Убедитесь, что одно и то же событие нажатия добавляется к каждой кнопке, для которой вы хотите эту функцию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...