C#两个richTextBox同步滚动

在C#如何让RichTextBox平滑滚动  今天在论坛看见有人在问如何实现RichTextBox的滚屏效果这个只要首先弄个Timer 在Timer中调用SetScrollPos设置滚动条位置 然后再用PostMessage或者SendMessage显示滚动条对应的内容 当然了你还得在SetScrollPos前判断下是否滚动条已经到底 用到的API GetScrollRange (http://msdn.microsof 阅读详情
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;

namespace SolveQuestion
{
    class RichTextBoxEx : RichTextBox
    {
        [DllImport("user32.dll")]
        public static extern int SendMessage(IntPtr hWnd, int Msg, IntPtr wParam, IntPtr lParam);
        public RichTextBoxEx()
        {
        }
        public const int WM_HSCROLL = 276;
        public const int WM_VSCROLL = 277;
        public const int WM_SETCURSOR = 32;
        public const int WM_MOUSEWHEEL = 522;
        public const int WM_MOUSEMOVE = 512;
        public const int WM_MOUSELEAVE = 675;
        public const int WM_MOUSELAST = 521;
        public const int WM_MOUSEHOVER = 673;
        public const int WM_MOUSEFIRST = 512;
        public const int WM_MOUSEACTIVATE = 33;

        private RichTextBox otherRichTextBox;
        public RichTextBox OtherRichTextBox
        {
            get { return otherRichTextBox; }
            set { otherRichTextBox = value; }
        }
        protected override void WndProc(ref Message m)
        {
            if ((otherRichTextBox != null) &&
                (m.Msg == WM_HSCROLL ||
                m.Msg == WM_VSCROLL ||
                m.Msg == WM_SETCURSOR ||
                m.Msg == WM_MOUSEWHEEL ||
                m.Msg == WM_MOUSEMOVE ||
                m.Msg == WM_MOUSELEAVE ||
                m.Msg == WM_MOUSELAST ||
                m.Msg == WM_MOUSEHOVER ||
                m.Msg == WM_MOUSEFIRST ||
                m.Msg == WM_MOUSEACTIVATE))
            {
                SendMessage(otherRichTextBox.Handle, m.Msg, m.WParam, m.LParam);
            }
            base.WndProc(ref m);
        }
    }
}

调用方法
        private void Form1_Load(object sender, EventArgs e)
        {
            richTextBoxEx1.OtherRichTextBox = richTextBoxEx2;
        }

 原理是:重写RichTextBox截获它的滚动条消息和鼠标消息发送给另一个RichTextBox
C#实现带行号的RichTextBox控件 本文还有配套的精品资源,点击获取 简介:本项目展示了如何在.NET Framework中的Windows Forms应用里,通过C#编程语言创建一个自定义控件,这个控件在 RichTextBox 的基础上增加行号显示功能。开发者需要通过继承 RichTextBox 并重写特定事件处理程序来绘制行号,并确保行号不会被滚动或编辑操作影响,同时在性能方... 阅读详情

相关推荐

C#自定义带行数与标尺功能的RichTextBox控件实战

你有没有遇到过这样的场景?在做一个代码编辑器、日志查看器,或者文档处理工具时,标准的看似功能齐全,但一旦需要加上行号显示或页面标尺,立刻就变得捉襟见肘。😣更糟的是,当你试图用拼凑出一个“看起来像样”的组合控件时,闪烁、卡顿、布局错乱接踵而至——仿佛每一步都在提醒你:“这条路走不通。别急,今天我们就来彻底解决这个问题。🎯 不是教你拼凑控件,而是手把手带你从底层构建一个真正高性能、高可用、可复用的——它将具备:✅ 实时更新的行号(支持自动换行)

weixin_30798867的博客 702

WPF中如何使得两个RichtextBox同时滚动

WPF中使得两个RichtextBox同时滚动

weixin_63004560的博客 559

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

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

C# .Net实现两个RichTextBox同步滚动、获取当前位置行号、滚动到指定行号位置、获取RichTextBox行高

文章目录一、效果展示二、winuser提供的API三、获取RichTextBox行高四、获取当前位置行号五、滚动到指定行号位置六、实现两个RichTextBox同步滚动 一、效果展示 二、winuser提供的API GetScrollPos 函数 (winuser.h) 获得指定滚动条中的滚动框(滑块)的当前位置。 GetScrollRange 函数 (winuser.h) 获得指定滚动条的当前最小和最大滚动框(滑块)的位置。 SetScrollPos 函数 (winuser.h) 设置在指定的滚动条中的滚

2697

博途 V15.1安装步骤

温馨提醒:安装此软件电脑配置至少应满足以下要求 处理器 CoreTM i5-3320M 3.3 GHz 或相当 内存 至少8G 硬盘 300 GB SSD 显示器 15.6' 宽屏显示 (1920 x 1080) 1.双击打开【Siemens v15.1】文件夹。 2.鼠标右击【STEP 7 BasicProfess...

谢谢关注“小鱼教你模数电”,各平台同号 9万+

Modbus 通信协议详解

Modbus是由 Modicon(现为施耐德电气公司的一个品牌)在 1979 年发明的,是全球第一个真正用于工业现场的总线协议。ModBus网络是一个工业通信系统,由带智能终端的可编程序控制器和计算机通过公用线路或局部专用线路连接而成。其系统结构既包括硬件、亦包括软件。它可应用于各种数据采集和过程监控。为更好地普及和推动Modbus在基于以太网上的分布式应用,目前施耐德公司已将Modbus协议的所有权移交给 IDA(,分布式自动化接口)组织,并成立了 Modbus-IDA 组织。

Projectsauron 的博客 7万+

[导入]两个RichTextBox同步滚动的实现

最近想做一个比较两段文本的东西,将文本放入RichTextBox,想拖动其中一个的滚动条,然后另外一个也就可以滚动的效果。 遵循我的一贯原则,先从RichTextBox本身的特性上找,从滚动事件上看,事件处理参数中居然没有滚动位置参数,RichTextBox也没有当前行的说法;下一步从属性上找,没有合适的;下一步找方法,找到一个有点象的:ScrollToCaret(),MSDN的说...

weixin_30897233的博客 340

VCS和UVM常用编译选项

VCS编译选项 -full64 在64bit模式下编译、仿真,用于64位操作系统 -j8 指定编译器可以并行编译的进程数为8 -timescale=1ns/1ps 指定仿真时间和精度 +libext+.v+.V+.sv+.svh 识别.v、.sv、.svh等多种格式文件 -sverilog 支持system verilog 编译 -f xxx.lisf 指定包含所有设计文件列表的文件名 -top test 设置顶层模块为test。(指包含.

qq_40571921的博客 9932

支持同步滚动的RichTextbox控件 分类: .NET ...

usingSystem.Windows.Forms; publicclassSynchronizedScrollRichTextBox:System.Windows.Forms.RichTextBox { publicSynchronizedScrollRichTextBoxSynchronized{get;set;} ...

weixin_30359021的博客 192

ADS与Cadence中Verilog-A文件的编译与调用实战指南

本文详细介绍了在ADS与Cadence平台中Verilog-A文件的编译与调用实战指南,涵盖开发环境配置、模型创建与编译、仿真设置技巧以及跨平台协作与调试等内容。通过具体案例和优化策略,帮助工程师高效完成混合信号仿真设计,提升电路建模与验证效率。

weixin_29196315的博客 495

NX二次开发 内部函数鼠标动态位置获取

内部函数鼠标动态位置获取

qq285503851的博客 3336

CRichTextBox 行号 与同步滚动资源文件

C#RichTextBox 行号 与同步滚动资源文件 去发现同类优质开源项目:https://gitcode.com/ 简介 本资源文件包含了一个用于C#中RichTextBox控件的扩展功能,主要实现了行号显示、同步滚动、字体大小设置不影响行号高亮显示以及智能提示等功能。以下是该资源文件的详细介绍: 功能特点 行号显示:为RichTextBox控件添加行号显示,方便用户快速定位代码或文本。 同...

gitblog_06722的博客 692

Flink Gauss CDC:深度剖析存量与增量同步的创新设计

开发Flink Gauss CDC是为了适配华为自研GaussDB的特殊日志格式和逻辑复制机制,解决Flink CDC无法直接支持的问题,同时优化存量与增量同步的效率和一体化读取能力,满足GaussDB复合主键处理、数据落库等定制化需求,以实现高效、准确的数据同步。

数据与算法架构提升之路专栏 1984

c# RichTextbox添加行号

【代码】c# RichTextbox添加行号。

qq_38069903的博客 767

YOLOv11改进-上采样 | EUCB高效上卷积块,实现特征图尺度匹配和高效上采样

本文介绍了一种在YOLOv11目标检测模型中引入高效解码器模块EMCAD的创新方法,以提升模型在资源受限场景下的性能与效率。EMCAD由多个模块构成,其中核心的EUCB(高效上卷积块)通过上采样、深度可分离卷积、激活归一化和通道调整等操作,兼顾了特征质量与计算成本。实验结果显示,该模块在显著减少参数与FLOPs的同时仍具备优异性能。文章还提供了完整的YOLOv11模型集成流程、配置和训练实战。

魔改工程师的博客 1540

100天精通Python(基础篇)——第3天:运算符全解析(算术运算符、比较运算符、逻辑运算符、赋值运算符及其优先级规则)

100天精通Python(基础篇)——第3天:运算符全解析(算术运算符、比较运算符、逻辑运算符、赋值运算符及其优先级规则)

努力让自己发光,对的人才能迎着光而来 14万+

CRichTextBox行号与同步滚动资源文件:提升C文本编辑体验的利器

CRichTextBox行号与同步滚动资源文件:提升C#文本编辑体验的利器 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 在软件开发领域,C# 作为一种强类型、面向对象的编程语言,其开发工具和控件的功能完善性至关重要。今天要推荐的CRichTextBox行号与同步滚动资源文件,正是为了增强C#中RichTextBox控件的实用性而设计。它不仅为开发者提供了显示行号的功...

gitblog_06759的博客 263

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

[C#]richtextbox实现行号

editorControl是一个userControl,其包含两个控件:左侧是一个用来显示行号的RichTextBox(使用label等均可),右侧是一个继承自RichTextBox的componenteditorGrid1。 /*实现行号 begin*/ (1) 添加事件 private void richTextBoxMain_TextChanged(object

静默虚空的专栏 2959

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

支持同步滚动的RichTextbox控件

using System.Windows.Forms;      public class SynchronizedScrollRichTextBox : System.Windows.Forms.RichTextBox   {       public SynchronizedScrollRichTextBox Synchronized { get; set; }       publ

十步一杀 1477

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

c#写带行号的richTextBox

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34417635的博客 273

基于WPF实现简单C#代码编辑功能的完整流程

首先定义 C# 关键字常量(用于语法匹配)、颜色常量(用于差异化着色),以及辅助变量,提升代码可维护性:12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970。

2501_94114815的博客 179

WPF实现简单C#代码编辑功能

通过本文的讲解,不仅可以掌握 WPF 实现简单代码编辑器的方法,还能深入理解RichTextBox富文本操作、正则表达式语法匹配、WPF 控件联动等核心知识点。在此基础上,可根据实际需求进行功能扩展,开发出更贴合开发场景的轻量级代码编辑工具。

让每一个想学习编程的人,都能学会,都能看懂,看了都有收获! 1212

WPF富文本日志

【代码】WPF富文本日志。

easyboot的专栏 298

两个RichTextBox同步滚动的实现

最近想做一个比较两段文本的东西,将文本放入RichTextBox,想拖动其中一个的滚动条,然后另外一个也就可以滚动的效果。 遵循我的一贯原则,先从RichTextBox本身的特性上找,从滚动事件上看,事件处理参数中居然没有滚动位置参数,RichTextBox也没有当前行的说法;

记事本 2358

使用 WinForms 实现简易代码编辑器:从零构建一个轻量级 IDE 核心组件

摘要 本文介绍了一个基于WinForms的轻量级代码编辑器实现方案,采用分层模块化设计,包含4个核心组件:语法高亮编辑器、代码折叠面板、行号显示和自动补全功能。关键技术包括:通过继承RichTextBox实现高性能语法高亮(采用事件抑制机制和Win32 API优化);自定义ListBox实现智能自动补全(支持动态过滤和键盘交互);使用TreeView实现代码结构解析和导航跳转。项目采用C# 10.0开发,通过正则表达式解析、异步定时器和双缓冲等技术优化性能,为WinForms开发复杂文本编辑器提供了完整实现

guiqiangbaby的专栏 297
上一篇: C#自定义可以调行距的Lable
下一篇: c#winform - textbox控件添加背景图片
cg_program
博客等级 码龄19年 245粉丝 147原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值