清除WinForms应用程序中的多行文本框时出现问题

清除WinForms应用程序中的多行文本框时出现问题,winforms,textbox,Winforms,Textbox,我的应用程序中有一个多行文本框,我想清除它的文本 问题是,当我使用 textBox.Text = "" or textBox.Clear() 只有第一行被清除。其他行仍然存在,但无法删除,如果我开始在文本框中键入,其他行将被覆盖,这使我认为这是一个重新绘制的问题,但不明白为什么会发生这种情况 文本框位于表单内的自定义用户控件中,可以最小化。该问题在窗体最小化然后恢复后出现 我尝试在控件和文本框上调用Refresh,以触发重新绘制,但没有成功 是否有其他方法触发重新绘制事件来解决此问题?不知

我的应用程序中有一个多行文本框,我想清除它的文本

问题是,当我使用

textBox.Text = "" 
or 
textBox.Clear()
只有第一行被清除。其他行仍然存在,但无法删除,如果我开始在文本框中键入,其他行将被覆盖,这使我认为这是一个重新绘制的问题,但不明白为什么会发生这种情况

文本框位于表单内的自定义用户控件中,可以最小化。该问题在窗体最小化然后恢复后出现

我尝试在控件和文本框上调用
Refresh
,以触发重新绘制,但没有成功

是否有其他方法触发重新绘制事件来解决此问题?不知道我做错了什么

编辑:

下面是一个代码示例。调用
ShowForm
方法来恢复最小化的表单

    public static void ShowForm()
    {
       if (!myForm.Visible)
       {
          myForm.PopulateForm();
          myForm.Show();
          myForm.Activate();
          myForm.WindowState = FormWindowState.Normal;
       }
    }
PopulateForm
(这是
myForm
的一种方法)中,我清除了文本框中的文本:

   public void PopulateForm()
   {
       this.myControl.myTextBox.Clear(); 
   }

this.myControl
是包含文本框的用户控件

正如我所怀疑的,这是由于重新绘制问题造成的。这是由于用户控件的
DoubleBuffered
属性设置为false引起的


将其设置为true后,文本框将正确呈现。

我对具有多行的文本框有类似的问题,我只是在
MyTextBox.Clear()之后执行了
MyTextBox.Refresh()

你能提供你的代码吗?你在问题中给出的东西在我的自定义用户文本框中不会发生。它使用textBox.Clear()命令成功地清除了数据。@ThitLwinOo:我已经在文章中添加了一段代码片段。感谢您的帮助。这是由于用户控件的
DoubleBuffered
属性设置为false造成的。将其设置为True后,文本框被正确呈现。@SzilardD我已经尝试了textbox.Clear()方法,它在这里工作正常。是否有任何其他事件或代码与textbox控件相关?