2013-05-09 306 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个字时可以恢复。