Добрый день, каждый может помочь мне с этой проблемой ... У меня есть поле со списком и текстовое поле. текстовое поле (txtFruitNo) проверит длину текста под событием Leave
. Все хорошо. Но если я нажму на поле со списком, а txtFruitNo еще не закончен. Мне нужно, чтобы я закончил сначала длину txtFruitNo, тогда только я могу щелкнуть поле со списком.messagebox всегда всплывает при нажатии комбинированной ячейки
Я не хочу показывать окно сообщений, если я нажимаю на поле со списком, даже если длина txtFruitNo еще не завершена.
Благодаря
private void cmbFruitSelection_SelectedIndexChanged(object sender, EventArgs e)
{
DateTime thetime = DateTime.Now;
String varApple = "App-Red";
String varBanana = "Ban-Yellow";
if (cmbFruitSelection.SelectedItem.ToString() == "Apple")
{
txtFruitNo.Text = varApple.ToString() + thetime.ToString("yyyy");
txtFruitNo.SelectionStart = txtFruitNo.Text.Length;
txtFruitNo.MaxLength = 18;
}
else if (cmbFruitSelection.SelectedItem.ToString() == "Banana")
{
txtFruitNo.Text = varBanana.ToString() + thetime.ToString("yyyy");
txtFruitNo.SelectionStart = txtFruitNo.Text.Length;
txtFruitNo.MaxLength = 17;
}
}
private void txtFruitNo_Leave(object sender, EventArgs e)
{
if (txtFruitNo.TextLength != txtFruitNo.MaxLength)
{
MessageBox.Show("Your fruit number is too short. Please check.");
txtFruitNo.Focus();
}
else
{
// Do something here
}
}
Вы смогли бы достичь желаемого путем введения настраиваемое свойство, указывающее, что был нажат Combo. И проверьте, если пользовательский 'property = true' перед запросом сообщения. – fujiFX
@fujiFX. у вас есть код там .... это действительно помогает – jLaw
Вместо этого используйте событие Validating. Вы можете установить e.Cancel = true, чтобы пользователь не мог изменить фокус. Используйте ErrorProvider, чтобы избежать пощечины пользователя с помощью окна сообщения. –