類似的問題已經被問到(例如,here),但是我沒有找到我的具體情況的答案。我正在構建一個基於DevExpress控件的自定義控件,該控件依次基於標準TextBox
,並且我有一個閃爍的問題,這似乎是由於基本的TextBox組件,它試圖更新選擇。防止在文本框中選擇文本
沒有解釋我的自定義控件的所有細節,重現你只需要放置一個TextBox
一個Form
內,然後使用此代碼的問題:
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
textBox1.MouseMove += TextBox1_MouseMove;
}
private void TextBox1_MouseMove(object sender, MouseEventArgs e) {
(sender as TextBox).Text = DateTime.Now.Ticks.ToString();
}
}
如果你啓動它,你點擊TextBox
然後您將光標向右移動,您會注意到閃爍問題(請參閱視頻here)。對於我的自定義控件,我需要避免這種閃爍。我一定會使用TextBox
(所以沒有RichTextBox
)。任何想法?
您想避免選擇嗎?還是要允許選擇,但文本更改時不應閃爍? –
我試過你的例子,點擊後沒有閃爍。它應該是其他事件重寫,你可以分享其他事件 –
來自MSDN'當你爲MouseMove處理程序編寫代碼時要小心。當用戶與應用程序或具有處理程序的特定對象區域進行交互時,MouseMove經常會發生。 MouseMove處理程序中的任何計算密集或圖形密集的代碼都可能會在鼠標指針(或手寫筆指針)繪製的方式和應用程序通常的行爲方式上引入明顯的延遲。「我想說這是因爲它在鼠標移動過程中多次更新。 –