两个RichTextBox如何同步滚动 如题,在第一个RichTextBox鼠标滚动时第二个RichTextBox也要相应的滚动,如何做? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这个好像实现不了吧,既然要同步滚动,是不是行行匹配?如果行行匹配不如直接用ListView。 一边拖动,另一个RichTextBox也自动与第一个RichTextBox拖动的位置相同。 除非两个内容完全一致,否则你根本滚不起来===================================================技术交流不该有界限 资源共享不该有条件博客空间:http://blog.csdn.net/lovingkiss资源下载:http://download.csdn.net/user/lovingkissEmail:loving-kiss@163.com本人说明:<我的帖子我做主,结贴率保持100%>1、欢迎一切问题有关的交流——无论答案对错;2、不欢迎 顶、Mark、支持之类口水混分的人;3、对带有性别的主题和求全部毕业代码者尽量不回答;我保留对非<散分贴>蹭分者的厌恶和鄙视...精通:jīnɡtōnɡ对学问技术等透彻的了解并熟练掌握所以,我没有精通,只有JZ=================================================== 这个用要用API函数先取得这个RichTextBox的滚动位置,然后用SendMessage向另一个RichTextBox发送消息来滚动! 加到panel里然后用panel.AutoScrollPosition要不就是用sendmessage发消息 public enum WindowsMessage { WM_HSCROLL = 0x0114, WM_VSCROLL = 0x0115 } public delegate void SendMessage(Message msg); public class MyRichTextBox:System.Windows.Forms.RichTextBox { public event SendMessage SendMessageEvent; protected override void WndProc(ref Message m) { if (m.Msg==WindowsMessage.WM_HSCROLL || m.Msg==WindowsMessage.WM_VSCROLL) { if (SendMessageEvent!=null) { SendMessageEvent(m); } } base.WndProc(ref m); } public void Scroll(Message m) { m.HWnd = this.Handle; WndProc(ref m); } }在使用的时候,用以下方式: MyRichTextBox c1 = new MyRichTextBox(); MyRichTextBox c2 = new MyRichTextBox(); private void Form1_Load(object sender, EventArgs e) { c1.SendMessageEvent += new SendMessage(c1_SendMessageEvent); this.Controls.Add(c1); this.Controls.Add(c2); } void c1_SendMessageEvent(Message msg) { c2.Scroll(msg); } c1为源RichTextBox,c2为被动RichTextBox,c1滚动,c2也跟着滚动。 public enum WindowsMessage { WM_HSCROLL = 0x0114, WM_VSCROLL = 0x0115 } public delegate void SendMessage(Message msg); public class MyRichTextBox:System.Windows.Forms.RichTextBox { public event SendMessage SendMessageEvent; protected override void WndProc(ref Message m) { if (m.Msg==WindowsMessage.WM_HSCROLL || m.Msg==WindowsMessage.WM_VSCROLL) { if (SendMessageEvent!=null) { SendMessageEvent(m); } } base.WndProc(ref m); } public void Scroll(Message m) { m.HWnd = this.Handle; WndProc(ref m); } }在使用的时候,用以下方式: MyRichTextBox c1 = new MyRichTextBox(); MyRichTextBox c2 = new MyRichTextBox(); private void Form1_Load(object sender, EventArgs e) { c1.SendMessageEvent += new SendMessage(c1_SendMessageEvent); this.Controls.Add(c1); this.Controls.Add(c2); } void c1_SendMessageEvent(Message msg) { c2.Scroll(msg); } c1为源RichTextBox,c2为被动RichTextBox,c1滚动,c2也跟着滚动。 C#windows窗体应用程序编写一个加法器 请教获取环境变量的问题。 能不能不捕捉异常? 弱弱的问一个问题 牛人请进。帮帮忙 。 软媒还没有倒闭,还在招人 导出excel问题,高手请进! 数据同步问题 关于在另一个类中改变上一个类中窗口的属性值 数组存放到字典问题 怎么清除以前的画的线呀?? C#中如何直接写并口打印机?
技术交流不该有界限 资源共享不该有条件
博客空间:http://blog.csdn.net/lovingkiss
资源下载:http://download.csdn.net/user/lovingkiss
Email:loving-kiss@163.com
本人说明:<我的帖子我做主,结贴率保持100%>
1、欢迎一切问题有关的交流——无论答案对错;
2、不欢迎 顶、Mark、支持之类口水混分的人;
3、对带有性别的主题和求全部毕业代码者尽量不回答;
我保留对非<散分贴>蹭分者的厌恶和鄙视...
精通:jīnɡtōnɡ对学问技术等透彻的了解并熟练掌握
所以,我没有精通,只有JZ
===================================================
要不就是用sendmessage发消息
{
WM_HSCROLL = 0x0114,
WM_VSCROLL = 0x0115
}
public delegate void SendMessage(Message msg);
public class MyRichTextBox:System.Windows.Forms.RichTextBox
{
public event SendMessage SendMessageEvent;
protected override void WndProc(ref Message m)
{
if (m.Msg==WindowsMessage.WM_HSCROLL || m.Msg==WindowsMessage.WM_VSCROLL)
{
if (SendMessageEvent!=null)
{
SendMessageEvent(m);
}
}
base.WndProc(ref m);
}
public void Scroll(Message m)
{
m.HWnd = this.Handle;
WndProc(ref m);
}
}
在使用的时候,用以下方式: MyRichTextBox c1 = new MyRichTextBox();
MyRichTextBox c2 = new MyRichTextBox();
private void Form1_Load(object sender, EventArgs e)
{
c1.SendMessageEvent += new SendMessage(c1_SendMessageEvent);
this.Controls.Add(c1);
this.Controls.Add(c2);
} void c1_SendMessageEvent(Message msg)
{
c2.Scroll(msg);
} c1为源RichTextBox,c2为被动RichTextBox,c1滚动,c2也跟着滚动。
{
WM_HSCROLL = 0x0114,
WM_VSCROLL = 0x0115
}
public delegate void SendMessage(Message msg);
public class MyRichTextBox:System.Windows.Forms.RichTextBox
{
public event SendMessage SendMessageEvent;
protected override void WndProc(ref Message m)
{
if (m.Msg==WindowsMessage.WM_HSCROLL || m.Msg==WindowsMessage.WM_VSCROLL)
{
if (SendMessageEvent!=null)
{
SendMessageEvent(m);
}
}
base.WndProc(ref m);
}
public void Scroll(Message m)
{
m.HWnd = this.Handle;
WndProc(ref m);
}
}
在使用的时候,用以下方式: MyRichTextBox c1 = new MyRichTextBox();
MyRichTextBox c2 = new MyRichTextBox();
private void Form1_Load(object sender, EventArgs e)
{
c1.SendMessageEvent += new SendMessage(c1_SendMessageEvent);
this.Controls.Add(c1);
this.Controls.Add(c2);
} void c1_SendMessageEvent(Message msg)
{
c2.Scroll(msg);
} c1为源RichTextBox,c2为被动RichTextBox,c1滚动,c2也跟着滚动。