• 实现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();
    }
    }
    
    
  • 相关阅读:
    adb命令
    linux常用命令(2)
    Cisco路由器配置基本命令
    linux常用命令
    跨站脚本攻击xss
    选择合适的索引列顺序
    索引的选择性
    mysql索引类型(按存储结构划分)
    mysql数据类型优化
    vim基本命令总结
  • 原文地址:https://www.cnblogs.com/greenteaone/p/1895474.html
Copyright © 2020-2023  润新知