public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} MyRichTextBox c1 = new MyRichTextBox();
MyRichTextBox2 c2 = new MyRichTextBox2();
private void Form1_Load(object sender, EventArgs e)
{
c1.SendMessageEvent += new SendMessage(c1_SendMessageEvent);
//c2.SendMessageEvent += new SendMessage(c2_SendMessageEvent); this.Controls.Add(c1);
this.Controls.Add(c2);
c1.Height = this.Height / 2 - 30;
c2.Top = this.Height / 2;
c2.Size = c1.Size; c1.WordWrap = false;
c2.WordWrap = false;
} void c1_SendMessageEvent(Message msg)
{
c2.Scroll(msg);
}public enum WindowsMessage
{
WM_HSCROLL = 0x0114,
WM_VSCROLL = 0x0115
} public delegate void SendMessage(Message msg); public partial class MyRichTextBox : System.Windows.Forms.RichTextBox {
public MyRichTextBox()
{
InitializeComponent();
} public event SendMessage SendMessageEvent; protected override void WndProc(ref Message m)
{
if (m.Msg == (int)WindowsMessage.WM_HSCROLL || m.Msg == (int)WindowsMessage.WM_VSCROLL)
{
if (SendMessageEvent != null)
{
SendMessageEvent(m);
}
}
base.WndProc(ref m);
}
public void Scroll(Message m)
{
m.HWnd = this.Handle;
WndProc(ref m);
}这个可以使一个richtextbox 与另一个同步滚动。但不能完全同步。 怎么才能完全同步滚动?
{
public Form1()
{
InitializeComponent();
} MyRichTextBox c1 = new MyRichTextBox();
MyRichTextBox2 c2 = new MyRichTextBox2();
private void Form1_Load(object sender, EventArgs e)
{
c1.SendMessageEvent += new SendMessage(c1_SendMessageEvent);
//c2.SendMessageEvent += new SendMessage(c2_SendMessageEvent); this.Controls.Add(c1);
this.Controls.Add(c2);
c1.Height = this.Height / 2 - 30;
c2.Top = this.Height / 2;
c2.Size = c1.Size; c1.WordWrap = false;
c2.WordWrap = false;
} void c1_SendMessageEvent(Message msg)
{
c2.Scroll(msg);
}public enum WindowsMessage
{
WM_HSCROLL = 0x0114,
WM_VSCROLL = 0x0115
} public delegate void SendMessage(Message msg); public partial class MyRichTextBox : System.Windows.Forms.RichTextBox {
public MyRichTextBox()
{
InitializeComponent();
} public event SendMessage SendMessageEvent; protected override void WndProc(ref Message m)
{
if (m.Msg == (int)WindowsMessage.WM_HSCROLL || m.Msg == (int)WindowsMessage.WM_VSCROLL)
{
if (SendMessageEvent != null)
{
SendMessageEvent(m);
}
}
base.WndProc(ref m);
}
public void Scroll(Message m)
{
m.HWnd = this.Handle;
WndProc(ref m);
}这个可以使一个richtextbox 与另一个同步滚动。但不能完全同步。 怎么才能完全同步滚动?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货