C# 当用户开始键入时清除文本框

C# 当用户开始键入时清除文本框,c#,winforms,textbox,C#,Winforms,Textbox,我在win表单中有两个文本框,用户将在其中输入信息。我想在用户开始键入时清除文本框。我正在使用TextChanged事件处理程序,因此每次键入时它都会被删除,这使我无法在文本框中键入任何内容。以下是我正在使用的代码: private void TXTBX_HourlyRatae_TextChanged(object sender, EventArgs e) { TXTBX.HourlyRate.Clear(); TXTBX.HoursWorked.Clear();

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

private void TXTBX_HourlyRatae_TextChanged(object sender, EventArgs e)
    {
      TXTBX.HourlyRate.Clear();
      TXTBX.HoursWorked.Clear();
    }
我知道每次我在文本框中键入内容时,我都会执行这个事件处理程序,但我不知道如何让它在我第一次键入文本框时才执行

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;

将清除调用移动到相应的Enter或GotFocus事件中。

创建新的私有类成员:

private bool _userHasEnteredText = false;
仅当此布尔值为false时删除文本,然后在第一次清除文本后将此布尔值设置为true