Ich bin in der Lage zu blättern meine beiden RichTextBox
mit diesem Trank von Code zu synchronisieren:RichTextBox eine Zeilennummer konvertieren bar Position jetzt
private const int SB_HORZ = 0x0;
private const int SB_VERT = 0x1;
private const int WM_HSCROLL = 0x114;
private const int WM_VSCROLL = 0x115;
private const int SB_THUMBPOSITION = 4;
[DllImport("user32.dll", CharSet = CharSet.Auto)]
private static extern int GetScrollPos(int hWnd, int nBar);
[DllImport("user32.dll")]
private static extern int SetScrollPos(IntPtr hWnd, int nBar, int nPos, bool bRedraw);
[DllImport("user32.dll")]
private static extern bool PostMessageA(IntPtr hWnd, int nBar, int wParam, int lParam);
internal int HScrollPos
{
private get { return GetScrollPos((int)this.Handle, SB_HORZ); }
set
{
SetScrollPos((IntPtr)this.Handle, SB_HORZ, value, true);
PostMessageA((IntPtr)this.Handle, WM_HSCROLL, SB_THUMBPOSITION + 0x10000 * value, 0);
}
}
internal int VScrollPos
{
get { return GetScrollPos((int)this.Handle, SB_VERT); }
set
{
SetScrollPos((IntPtr)this.Handle, SB_VERT, value, true);
PostMessageA((IntPtr)this.Handle, WM_VSCROLL, SB_THUMBPOSITION + 0x10000 * value, 0);
}
}
ich die RichTextBoxes
während Taste gedrückt synchronisieren können, und Vscroll
Ereignis. der Tat ist dies nicht mein Ziel, ich will meine RichTextBoxes
Stationierung auf den Inhalt synchronisieren, Was ich brauche:
- Erhalten Sie die aktuelle Zeile Form
RichTextBox
nicht ausgewählt. - Stellen Sie die Scroll-Balkenposition mit der Zeilennummer in der anderen
RichTextBox
ein (ohne den Fokus vom aktuellen zu verlieren). - Die Zeilennummer von der Bildlaufleistenposition abrufen.
Hinweis: Sie willkommen sind, zu fragen, ob Sie mehr Informationen benötigen.
Vielen Dank im Voraus.
Ich denke, das Beispiel für Sie nützlich sein wird http://www.codeproject.com/Articles/12152/Numbering-lines- von-RichTextBox-in-NET – askeet
Ist diese WinForm-Anwendung? – Ian
ja, ein Windows-Formular –