2016-01-09 68 views
2

目前我擁有它,因此當您選擇文本框時,它會突出顯示其中的文本,但是我想要它做的只是第一次執行此操作選中它以便它不會刪除用戶每次輸入的文本。這裏是我用什麼來突出顯示文本:使文本框只在第一次點擊時只突出顯示文本

private void txtName_Focus(object sender, EventArgs e) 
    { 
     bool isFirstTime = true; 
     if (isFirstTime == true){ 
     txtName.SelectionStart = 0; 
     txtName.SelectionLength = txtName.Text.Length; 

     } 
     isFirstTime = false; 


    } 
+0

難道你不能簡單地添加一個'bool isFirstTime'來檢測?然後根據需要用你的域邏輯重置布爾值。 –

+0

我補充說,但每次我嘗試在第一次輸入框時都會這樣做。 – James

+0

使用前將其初始化爲「true」,之後再使用「false」。 –

回答

4

bool isFirstTime = true;這是你的問題。它正在被初始化爲true每次焦點事件正在被調用。移動bool isFirstTime;是你的類的成員,它在聲明中,構造函數或窗體加載事件

+0

啊,謝謝我認爲這會很簡單。 – James

3

也許是這樣的初始化true一次:如果您需要這在很多地方

bool txtNameWasFocused=false; 
private void txtName_Focus(object sender, EventArgs e) 
{ 
    if(!txtNameWasFocused){ 
     txtNameWasFocused=true; 
     txtName.SelectionStart = 0; 
     txtName.SelectionLength = txtName.Text.Length; 
    } 
} 

,你可能會想到這種特殊行爲的派生文本框...

相關問題