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

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

Работаю с WinForms. Требуется, чтобы , если в textbox1 введено определенный символ, при нажатии на любую кнопку выводилось сообщение в messagebox. можно ли это осуществить, не прописывая в КАЖДОМ button_Click'е if с условием на проверку текста в textbox1?
  • Вопрос задан
  • 238 просмотров
Решения вопроса 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. Уточнить что собственно ввел пользователь. И если он ввел нужный вам символ - последовательно привязать всем кнопкам нужный вам обработчик события(при этом, если необходимо, отвязать старые обработчики)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы