日期:2014-05-19  浏览次数:20813 次

有一段文字,我想显示在RichTextBox中,要求每隔一秒钟显示一个单词,怎么做呢?(详情如下)
在三国演义.txt文件中,有怎么一段文字:

话说天下大势,分久必合,合久必分。周末七国分争,并入于秦。及秦灭之后,楚、汉分争,又并入于汉。汉朝自高祖斩白蛇而起义,一统天下;后来光武中兴,传至献帝,遂分为三国。


我想显示在RichTextBox中,要求每隔一秒钟显示一个单词,我的代码是:

//在Form1_Load事件中
string   fileName   =   @ "D:\Documents   and   Settings\Administrator\桌面\三国演义.txt ";
StreamReader   r   =   new   StreamReader(fileName,   Encoding.Default);
while   (r.Read()!=-1)
{
        richTextBox1.AppendText(r.ReadLine()+ "\n ");
        if   (r.Read().ToString()   ==   "   ")//如果遇到一个空格,就停止一秒
        {
              System.Threading.Thread.Sleep(1000);  
        }
}

但是这样写,会一下子把文本都显示在richTextBox中了。

怎样改才能每隔一秒钟显示一个单词呢?

------解决方案--------------------
lz代码好像有问题, 我想下面这句可能都没有执行,你可以单步调一下
if (r.Read().ToString() == " ")//如果遇到一个空格,就停止一秒
{
System.Threading.Thread.Sleep(1000);
}

另r.ReadLine()每次读一行,。txt文件是不是一个段落就是一行呀
------解决方案--------------------
用Thread.Sleep和用timer控件效果一样,不过你如果想让它一个词一个词的显示的话,那你要有一词库来告诉程序什么样的才是一个“词”才行
------解决方案--------------------
个人觉得应该要把 整段文字看成一个字符串数字,每个字是个字符串,用时间空间控制每秒打印一个字符串!
------解决方案--------------------
写一个处理方法,第一次可以读入文件,存在一个string里,然后建个int变量用作统计string已读的位置,用substring(n,1)读出字符,timer的interval为1000,每次都调用下处理方法,一旦读完string就timer.enable=false;
------解决方案--------------------
编程思想有问题,给你个建议,把文本读到字符串里,然后,调用timer每秒先生一个字符就欧了。
------解决方案--------------------
r.ReadLine()+ "\n "也有问题

string fileName = @ "D:\Documents and Settings\Administrator\桌面\三国演义.txt ";
StreamReader r = new StreamReader(fileName, Encoding.Default);
char[] a=null;

while (r.Read(a,0,1)!=-1)
{
richTextBox1.AppendText(a.ToString());
if (r.Read().ToString() == " ")//如果遇到一个空格,就停止一秒
{
System.Threading.Thread.Sleep(1000);
}
System.Threading.Thread.Sleep(1000);//再加多一个
}