2016-06-19 119 views
0

我需要建立一个数字标牌应用程序,它将显示通知。考虑到文本应该具有被设计为用户的能力,我想过一个富文本框控件,文本将自动垂直滚动(如“新闻”文本框)。 任何想法?RichTextBox垂直自动滚动文本

+0

目前为止的代码?您可以定期将WM_SCROLL消息发送到富文本框。滚动到底时会发生什么?使用HTML页面(可以处理来自JavaScript内部的滚动)可以实现更好的控制,并使用WebBrowser控件显示在VB.NET程序中。 – dlatikay

回答

0

好吧我现在正在为你写这个给你,而我等待我的火车所以我没有测试过,但这样的事情应该做的伎俩。

注意
如果你得到CheckForIllegalCrossThreadCalls错误
不要将其设置为CheckForIllegalCrossThreadCalls = False除了调试的目的。
虽然你不会在开始时注意到任何事情,但CheckForIllegalCrossThreadCalls = False可能会导致问题在稍后出现。

综上所述,这里是代码。

Public Class Form1 

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
    TextBox1.SelectionStart = 0 ''Change to a RichTextBox if you want. 
    ''Starting the background worker. 
    BackgroundWorker1.RunWorkerAsync() 
End Sub 

Private Sub BackgroundWorker1_DoWork(sender As Object, e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork 
    ''BACKGROUND WORKER'' 
    For i = 0 To TextBox1.Text.Length 
     TextBox1.SelectionStart = i 
     System.Threading.Thread.Sleep(200)''changing the sleep time will make the textbox scroll to the right faster or slower. 
    Next 

End Sub 

Private Sub BackgroundWorker1_RunWorkerCompleted(sender As Object, e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles BackgroundWorker1.RunWorkerCompleted 
    ''Once completed, The background worker will start again. 
    TextBox1.SelectionStart = 0 
    BackgroundWorker1.RunWorkerAsync() 
End Sub 

Private Sub Form1_Closing(sender As Object, e As CancelEventArgs) Handles Me.Closing 
    ''This should stop the program from crashing when closing if the background worker is still running 
    BackgroundWorker1.CancelAsync() 
End Sub 
End Class 

注意
您将需要使用一个后台工作,否则你的程序将变得没有反应,直到Loop完成。
再一次,如果你得到CheckForIllegalCrossThreadCalls错误,请看看谷歌和搜索以解决这个问题,但是如果你很乐意把它作为CheckForIllegalCrossThreadCalls = False而不是你自己。

让我知道你是怎么回事,我还没有测试过,但是由于没有人在10个小时内回复过你,我想我甚至在没有编译器的情况下试一试。

+0

嗨,我会试试这个,让你知道尽快。谢谢! – Kasper555

+0

没有问题,如果你碰巧遇到了我刚才提到的错误,但很高兴与它一起生活,直到你清除所有代码,这里是修复'CheckForIllegalCrossThreadCalls = False'将它添加到formload sub – Werdna

+0

为什么没有问题你只是从一开始就使它线程安全? :) –