ä½ å¯ä»¥éåRichTextBoxæªè·å®çæ»å¨æ¡æ¶æ¯åé¼ æ æ¶æ¯åéç»å¦ä¸ä¸ªRichTextBoxï¼å¦ä¸
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;
}
追é®è¿ä¸ªæ¹æ³è½è§£å³è¿ä¸ªé®é¢ æå·²è¯è¿ ä½ä¹æ缺ç¹
1 æ¹åé®æ ç¨
2é¼ æ æ»è½®è½æ»å¨ ä½æ²¡å¯¹é½åè½ æä»¶å¤§ç¹ æ»æ»å°±ä¸é½äº ä¼éä½
3 è¿ä¸ªæ¹æ³è¿è¦æ¹è¿ææç¨
4 ä¸é¢è¿ä¸ªæ¯ä½ é£ä¸ªæ§è½æ´å¥½ å¦è½å¨è¿ä¸ªåºç¡ä¸æ¹å¥½äº åè½ä¸å° å å
http://www.360doc.com/content/14/0325/11/6889381_363548435.shtml