2016-12-02 176 views
-6
private void textBox3_TextChanged(object sender, EventArgs e) 
{ 
    if (textBox3.Text == "") 
    { 
     textBox3.Text == "---"; 
    } 
} 

我想在這裏做的是檢查文本框爲空,如果是,那麼---將自動在另一個datagridview的檢查文本框是否爲空並填充它?

+2

'=='是比較運算符,'='是賦值運算符。嘗試'if(textBox3.Text == string.Empty){textBox3.Text =「---」; }' – Equalsk

+3

好的。什麼是問題? – Alex

+4

如果您嘗試(錯誤地)將它分配給一個'TextBox',如何進入'DataGridView'? –

回答

3

問題是還不是很清楚。我不知道DataGridView在哪裏發揮作用,因爲代碼都是關於文本框的。

但無論如何,這個代碼是而不是很好的解決了這個問題。您將不斷干擾用戶更改文本框內容的能力,導致極其令人沮喪的體驗。

如果您必須這樣做,請確保您僅在文本框失去焦點時執行此操作,而不是每次文本更改時執行此操作。也就是說,處理LostFocus事件,而不是TextChanged事件。您可以進行相同的條件測試,但要確保操作員正確! (==爲平等測試; =爲轉讓)。

private void textBox3_LostFocus(object sender, EventArgs e) 
{ 
    if (textBox3.Text == "") 
    { 
     textBox3.Text = "---"; 
    } 
} 

更好的解決方案是use a textbox with a cue banner。將提示橫幅設置爲「---」字符串,只要文本框爲空(不包含文本),就會顯示提示橫幅。這一切都是由操作系統自動完成的,並作爲文本框繪畫邏輯的一部分進行處理,因此它不會干擾用戶與控件進行交互的能力。它也是可預測的,並與標準的Windows用戶界面行爲一致。

如果您確實想要檢查文本框是否爲空,並且如果是,請將「---」添加到DataGridView,那麼TextChanged事件可能會正常工作,但Validating是更好的選擇。在if語句的內部,將文本分配給DataGridView中的相應單元格。