支持同步滚动的RichTextbox控件

using System.Windows.Forms;

public class SynchronizedScrollRichTextBox : System.Windows.Forms.RichTextBox
{
    public SynchronizedScrollRichTextBox Synchronized { get; set; }
    public const int WM_VSCROLL = 0x115;
    public const int EM_LINESCROLL = 0xB6;

    protected override void WndProc(ref System.Windows.Forms.Message msg)
    {
        if (msg.Msg == WM_VSCROLL || msg.Msg == EM_LINESCROLL)
        {
            if (Synchronized != null)
            {
                Message message = msg;
                message.HWnd = Synchronized.Handle;
                Synchronized.PubWndProc(ref message);
            }
        }
        base.WndProc(ref msg);
    }

    public void PubWndProc(ref System.Windows.Forms.Message msg)
    {
        base.WndProc(ref msg);
    }
}

以上代码,复制到项目中,编译一次,拖到窗体中即可,例如拖2个实例,然后在设计界面,分别设置 Synchronized 属性为对方。运行后两个文本框就可以同步滚动。

时间: 2024-08-01 20:13:23

支持同步滚动的RichTextbox控件的相关文章

(C#)RichTextBox控件

RichTextBox(有格式文本)控件可实现TextBox控件的所有功能. ?在RichTextBox控件中显示滚动条 RichTextBox可设置Multiline属性来控制是否显示滚动套,true为是,false为否.,默认为true.(此项属性在TextBox亦可实现) 滚动条分为两种:水平(Horizontal)滚动条和垂直(Vertical)滚动条,通过RichTextBox的ScrollBars属性设置如何显示滚动条.(此项属性在TextBox亦可实现) ScrollBars属性值

C#超简单方法实现两个richtextbox控件滚动条同步滚动

此文章属于作者原创,转载请注明,谢谢 有时候我们需要实现对照文章等,往往将文本放到两个richtextbox控件中,但是,如果我们需要同步滚动查看,来达到更好的观看效果. 当然,传统的方法重载控件或者自定义控件都可以达到目的,但是对于新手或者想仅仅只用一次这个控件的人来说,是非常麻烦的.所以,接 下来我来提供一种简单快捷的方法来实现:richtextbox滚动条同步的功能. 首先,我们在winform窗体创建两个richtextbox控件 下面介绍两个方法,我经常用到 第一个方法,获得当前鼠标所

WPF: 实现 ScrollViewer 滚动到指定控件处

原文:WPF: 实现 ScrollViewer 滚动到指定控件处 在前端 UI 开发中,有时,我们会遇到这样的需求:在一个 ScrollViewer 中有很多内容,而我们需要实现在执行某个操作后能够定位到其中指定的控件处:这很像在 HTML 页面中点击一个链接后定位到当前网页上的某个 anchor. 要实现它,首先我们需要看 ScrollViewer 为我们提供的 API,其中并没有类似于 ScrollToControl 这样的方法:在它的几个以 ScrollTo 开头的方法中,最合适的就是 S

ux.form.field.GridDate 支持快速选择日期的日期控件

效果如图,亲测6.2.1版本可用 1 /** 2 *支持快速选择日期的日期控件 3 */ 4 Ext.define('ux.form.field.GridDate', { 5 extend: 'Ext.form.field.Date', 6 alias: 'widget.gridDateField', 7 requires: ['ux.picker.GridDate'], 8 pickerGrid: { 9 store: { 10 //默认配置 11 data: [{ 12 value: 30,

HOW TO:使用 Visual C# .NET 打印 RichTextBox 控件的内容

概要 本分步指南介绍了如何打印 RichTextBox 控件的内容.RichTextBox 控件没有提供任何打印 RichTextBox 内容的方法.您可以扩展 RichTextBox 类以使用 EM_FORMATRANGE 消息将 RichTextBox 控件的内容发送到一个输出设备(如打印机). 创建 RichTextBoxPrintCtrl 控件 下面的示例介绍了如何扩展 RichTextBox 类,以及如何使用 EM_FORMATRANGE 打印 RichTextBox 控件的内容. 在

NET RichTextBox控件如何可以插入图像

本文介绍.NET RichTextBox控件如何可以插入图像,控制和ActiveX对象通过使用OLE方式,如在解释,.不幸的是,它涵盖了只用一个C源代码样本,所以我需要在托管代码(C#)实施类似的解决方案.有一个RichTextBox插入图片和OLE对象的其他有关条款,但他们使用的是RTF代码,我需要一个更适合聊天使用专门的控制,并提供了一??种方法插入表情符号,进度条和图像,最后,恢复他们得到他们的OLE处理或任何对象的属性.特别感谢 Khendys戈登的文章:"".背景要实现的解决

RichTextBox控件

RichTextBox控件允许用户输入和编辑文本的同时提供了比普通的TextBox控件更高级的格式特征 //color在c#中是个枚举enum 蓝色按钮:在蓝色按钮注册click事件后,richtextbox1.selectioncolor=color.blue: 红色按钮:在红色按钮注册click事件后,RichTextBox1.selectionColor=color.Red: 隶属18按钮:在注册click事件后,RichTextBox1.selectionFont=new font("隶

使用RichTextBox控件保存文件

实习效果: 知识运用: RichTextBox控件的SaveFile方法 SaveFileDialog对象的ShowDialog方法 实现代码: private void 打开RTF文件ToolStripMenuItem_Click(object sender, EventArgs e) { openDialog.Filter = "*.rtf|*.rtf"; if (openDialog.ShowDialog() == DialogResult.OK) { richTextBox1.

在RichTextBox控件中替换文本文字

实现效果: 知识运用: RichTextBox控件的SelectedText属性 实现代码: private void button1_Click(object sender, EventArgs e) { if (richTextBox1.SelectedText.ToString()!= "") { richTextBox1.SelectedText = textBox1.Text; } else { MessageBox.Show("请选择要替换的文字");