Din7
@Din7
Пытаюсь программировать, CGmaster - ломастер

Как сделать так, чтобы в случае выполнения определенного условия ВСЕ кнопки данной формы реагировали одинаково?

Работаю с WinForms. Требуется, чтобы , если в textbox1 введено определенный символ, при нажатии на любую кнопку выводилось сообщение в messagebox. можно ли это осуществить, не прописывая в КАЖДОМ button_Click'е if с условием на проверку текста в textbox1?
  • Вопрос задан
  • 254 просмотра
Решения вопроса 1
Neuroware
@Neuroware
Программист в свободное от работы время
при загрузке формы достаточно всем контролам привязать событие на нажатие клавиши, обработчик же достаточно прописать один раз, пример ниже. Если пользователь ввел Ж то отмечается что была нажата Ж и при клике по любой кнопке на форме выводится "ты зачем написал Ж, быстро стер!" до тех пор пока пользователь не сотрет ее из текстового поля.

public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            foreach (Control item in this.Controls )
            {
                item.MouseClick += Item_MouseClick;
            }
        }

        private void Item_MouseClick(object sender, MouseEventArgs e)
        {
            if (keypressed)
            {
                if (textBox1.Text.Contains("ж"))
                {
                    MessageBox.Show("ты зачем написал Ж, быстро стер!");
                }
                else
                {
                    MessageBox.Show("Вот! другое дело!");
                    keypressed = false;
                }
                
            }
        }

        bool keypressed = false;
        private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar ==  'ж')
            {
                keypressed = true;
            }
        }
    }
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@dmitryKovalskiy
программист средней руки
Как вариант - отлавливать событие изменения состояния textBox. Уточнить что собственно ввел пользователь. И если он ввел нужный вам символ - последовательно привязать всем кнопкам нужный вам обработчик события(при этом, если необходимо, отвязать старые обработчики)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы