Одним из возможных решений является создание переменной Control
, в которой хранится ссылка на последнее нажатое текстовое поле. Это будет обработано событием Click
для обоих текстовых полей. Затем, нажав на кнопку с цифрой, просто добавьте число к выбранной переменной текстового поля. Примерно так:
Control SelectedTextbox { get; set; } = null;
//Use this event handler for both the Quantity and Itemcode textbox
public TextBox_Click(object sender, EventArgs e)
{
SelectedTextbox = (Control)sender;
}
private void Button0_Click(object sender, EventArgs e)
{
if(SelectedTextbox == null)
throw new Exception("SelectedTextbox has not been set");
SelectedTextbox.Text += "0";
}
Обратите внимание: если MetroTextBox
не наследуется от Control
, вам нужно изменить SelectedTextbox
на другой тип. Скорее всего, это так.
Вы также можете рассмотреть возможность использования одного обработчика событий для всех нажатий кнопок вместо одного для каждого. Вы можете либо проанализировать, какая цифровая кнопка была нажата, используя имя sender
, либо вы можете сохранить номер кнопки в Tag
кнопки и прочитать его оттуда. Но лучше оставить еще один вопрос.