0

我有两个文本框,用户将在其中输入信息。我想在用户开始输入时清除文本框。我正在使用TextChanged事件处理程序,所以每次我输入它都会擦除,这使我无法在文本框中输入任何内容。这是我正在使用的代码:

private void TXTBX_HourlyRatae_TextChanged(object sender, EventArgs e)
    {
      TXTBX.HourlyRate.Clear();
      TXTBX.HoursWorked.Clear();
    }

我知道每次我在文本框中输入内容时都会执行此事件处理程序,但我不知道如何让它仅在我第一次输入文本框中时执行。

4

3 回答 3

6
private bool firsttime = true;

private void TXTBX_HourlyRatae_TextChanged(object sender, EventArgs e)
{
      if (firsttime)
      {
          TXTBX.HourlyRate.Clear();
          TXTBX.HoursWorked.Clear();
          firsttime = false;
      }
}

如果您想在每次输入文本框时都执行此操作,请处理丢失焦点事件

private void TXTBX_HourlyRatae_LostFocus(object sender, System.EventArgs e)
    {

    }       firsttime = true;
于 2013-09-09T22:00:49.727 回答
3

将您的Clear()呼叫移动到相应的EnterGotFocus事件中。

于 2013-09-09T22:00:51.773 回答
2

创建一个新的私有类成员:

private bool _userHasEnteredText = false;

仅当此 bool 为 false 时才擦除文本,然后在第一次清除文本后将此 bool 设置为 true。

于 2013-09-09T22:02:47.040 回答