【问题标题】:Making TextBox Clear when user starts typing当用户开始输入时使文本框清除
【发布时间】:2013-09-10 06:02:47
【问题描述】:

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

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

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

【问题讨论】:

    标签: c# winforms textbox


    【解决方案1】:
    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;
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

        private bool _userHasEnteredText = false;
        

        仅在此布尔值为 false 时擦除文本,然后在第一次清除文本后将此布尔值设置为 true。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-01-04
          • 2014-09-27
          • 2017-09-12
          • 2010-10-08
          • 2013-06-21
          • 2017-08-09
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多