2012-02-06 60 views
1

我的應用程序中有一個多行文本框,其文本要清除。在WinForms應用程序中清除多行文本框的問題

的問題是,當我使用清除

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的方法),I清除文本框的文本:

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

this.myControl是包含文本框

+0

你能提供你的代碼嗎? – 2012-02-06 13:18:51

+0

在我的情況下,您在自己的問題中提供的內容不會發生在自定義用戶文本框中。它使用textBox.Clear()命令成功清除數據。 – 2012-02-06 13:24:44

+0

@ThitLwinOo:我在代碼中添加了一段代碼。謝謝你的幫助。 – SzilardD 2012-02-06 13:29:37

回答

0

正如我懷疑用戶控制,這是由於重繪問題。這是由用戶控件的DoubleBuffered屬性設置爲false引起的。

設置爲true後,文本框被正確渲染。

相關問題