2013-05-09 300 views
0

我試圖在c#中創建一個文本框,該文本框只包含100個單詞,並且在第100個單詞之後沒有其他文本可以輸入到框中。在文本框中限制文字

+0

嘗試重組這是一個對SO有用的問題。 – Renan 2013-05-09 22:24:21

+1

你確定你不是指_characters_? @ I4V有一個點! – 2013-05-09 22:26:18

+0

我想爲散文寫一個盒子,所以我的意思是說話。 – Austin 2013-05-09 22:49:56

回答

2

一個簡單的方法,因爲它取代連續的空格有一個可能是不準確的:

private void textBox1_TextChanged(object sender, EventArgs e) 
{ 
    string[] words = textBox1.Text.Split(); 
    int wordCount = words.Length; 
    if (wordCount > 100) 
     textBox1.Text = string.Join(" ", words.Take(100)); 
} 

代替String.Join,你可以用舊的文本替換它:

private string oldText; 
private void textBox1_TextChanged(object sender, EventArgs e) 
{ 
    string[] words = textBox1.Text.Split(); 
    int wordCount = words.Length; 
    if (wordCount > 100) 
     textBox1.Text = oldText; 
    else 
     oldText = textBox1.Text; 
} 
+0

謝謝@Tim,但有什麼辦法可以阻止他們在第100個單詞之後輸入任何內容?您可以繼續輸入代碼,但是當您取消選擇該框時,會刪除第100個單詞後的所有內容。這是一個問題,因爲這種形式將被學生寫作文章使用,我們不希望他們失去一半的作文。 – Austin 2013-05-09 23:49:21

+0

您可以在第100個單詞後禁用文本框。 – 2013-05-10 05:16:49

+0

我是使用C#/ HTML進行編程的新手,我想知道禁用文本框是否會永久禁用它,或者用戶是否可以刪除單詞並添加另一個單詞? – Austin 2013-05-10 18:50:10

0

在文本框的TextChanged事件上,計算空格和換行符的出現次數。如果它們大於99,不要讓文字改變。您必須將其文本的副本保留在另一個變量中,以便用戶輸入第100個字時可以恢復。