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();
    }
    }
    
    
  • 相关阅读:
    Postman高级应用——流程控制、调试、公共函数、外部数据文件
    python模块之openpyxl
    appium实例1:启动淘宝app
    appium1.6在mac上环境搭建启动ios模拟器上Safari浏览器 转自:上海-悠悠
    appium 环境准备
    python_正则表达式
    接口测试指导方案 转:紫漪
    性能监控工具的配置及使用
    Python_斐波那契数列
    Js new一个函数和直接调用函数的区别
  • 原文地址:https://www.cnblogs.com/greenteaone/p/1895474.html
Copyright © 2011-2022 走看看