Я предполагаю, что вы используете textBox2
для отображения несколько сообщений (поэтому вы используете =+
вместо =
), но вы не хотите отображать одно и то же сообщение дважды, если пользователь все еще печатает.
Если это так, то вы можете использовать любой из этих 3-х вариантов:
1- Чтобы использовать Leave
событие .. что-то вроде следующего:
private void textBox1_Leave(object sender, EventArgs e)
{
if (textBox1.Text.StartsWith("-"))
{
textBox2.Text += "\r\n Please do not use other characters \r\n";
}
}
В этом случае, сообщение будет отображаться только тогда, когда textBox1
теряет фокус.
2- Если вы хотите, чтобы отобразить сообщение во время набора текста, но будет отображаться один раз, вы могли бы сделать что-то вроде этого:
bool Alerted;
private void textBox1_Enter(object sender, EventArgs e)
{
Alerted = false;
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
if (Alerted) { return; }
if (textBox1.Text.StartsWith("-"))
{
Alerted = true;
textBox2.Text += "\r\n Please do not use other characters \r\n";
}
}
Это не будет отображать сообщение снова до textBox1
восстанавливает фокус.
3- И если вы хотите, чтобы сообщение никогда не будет отображаться снова, если (-) не удаляется и напечатал еще раз, то не используйте Enter
, и вы можете просто использовать следующее:
bool Alerted;
private void textBox1_TextChanged(object sender, EventArgs e)
{
if (textBox1.Text.StartsWith("-"))
{
if (Alerted) { return; }
Alerted = true;
textBox2.Text += "\r\n Please do not use other characters \r\n";
}
else
{
Alerted = false;
}
}
Один последнее замечание: вы, наверное, не нужно \r\n
в начале и в конце сообщения, вы можете просто добавить его в конец строки.
Надеюсь, что поможет :)
Вместо '+ =' use '='? – CodeCaster
Я хочу, чтобы программа добавляла сообщение все время, когда textbox1 начинается с «-» –
Пожалуйста, отредактируйте свой вопрос, чтобы он содержал поэтапно то, что вы хотите, и что вы думаете «все время». – CodeCaster