zoukankan      html  css  js  c++  java
  • 实现RichTextBox内容自动滚动(WPF)

    要实现RichTextBox内容的自滚动,首先要建立一个WPF Application 的工程,这里工程命名为FreeScroll。

    1.应用软件:VS2010

    2. 程序完成的功能:

          2.1  在richtextBox中载入Xaml文件

          2.2  设置滚动速度

          2.3  滚动

          2.4  鼠标双击停止滚动

    3. 程序用到的控件:RichTextBox,Button,Label,TextBox

    4.程序的实现

         4.1 控件布局           

     WPF中布局好的控件图如下:

         

         4.2  实现控件的响应函数

         

    代码
    namespace FreeScroll {
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window {
    public MainWindow() {
    InitializeComponent();
    textBox1.Text
    ="";
    }

    //载入文件
    private void Load_Click(object sender, RoutedEventArgs e) {
    tmp
    =0;
    if (this.timer !=null) { timer.Tick -= new EventHandler(timer_Tick); }
    OpenFileDialog openDialog
    =new OpenFileDialog ();
    if (openDialog.ShowDialog()==true )
    {
    using(FileStream fs=new FileStream (openDialog.FileName,FileMode.Open))
    {
    richTextBox1.Document
    =XamlReader.Load(fs) as FlowDocument;
    richTextBox1.Background
    =richTextBox1.Document.Background;
    }

    }

    }

    //实现滚动
    private void Scroll_Click(object sender, RoutedEventArgs e) {
    if (timer!=null)
    {
    timer.Tick
    -=new EventHandler (timer_Tick);
    }
    int timeInterval;
    if (textBox1.Text != "") {
    timeInterval
    = System.Int32.Parse(textBox1.Text);

    if (timeInterval >= 0) {
    timer.Interval
    = new TimeSpan(0, 0, 0, 0, timeInterval);

    timer.Tick
    += new EventHandler(timer_Tick);
    timer.Start();

    }
    else {
    MessageBox.Show(
    "请输入合适的时间间隔!");
    }
    }
    else {
    MessageBox.Show(
    "请输入合适的时间间隔!");
    }
    }

    void timer_Tick(object sender, EventArgs e) {
    this.richTextBox1.ScrollToVerticalOffset(tmp++);
    }

    //鼠标双击停止滚动
    private void richTextBox1_MouseDoubleClick(object sender, MouseButtonEventArgs e) {
    timer.Tick
    -=new EventHandler(timer_Tick);
    }
    double tmp = 0;
    DispatcherTimer timer
    = new DispatcherTimer();
    }
    }
    
    
  • 相关阅读:
    IDEA连接 Oracle数据库
    什么是混合云备份
    什么是阿里云ACA认证
    什么是阿里云ACE认证
    什么是轻量应用服务器
    什么是时序时空数据库TSDB
    什么是数据管理DMS
    什么是分析型数据库PostgreSQL版
    阿里云多端小程序
    阿里云云计算ACP专业认证考试
  • 原文地址:https://www.cnblogs.com/greenteaone/p/1895474.html
Copyright © 2011-2022 走看看