2010-12-01 50 views
4

如何使用C#滾動到RichTextBox控件的指定行號?這是WinForms版本。如何使用C#滾動到RichTextBox控件的指定行號?

+0

哪個RTB? WinForms或WPF? – 2010-12-01 09:59:52

+0

@亨克:這是Winforms。 – 2010-12-01 10:01:25

+0

我相信你可以用Win32 API做。見 http://www.codeproject.com/KB/vb/VbNetScrolling.aspx 用C#這樣做,你將不得不實施RichTextBox控件的窗口過程: http://msdn.microsoft.com/en- us/library/system.windows.forms.richtextbox.wndproc.aspx – 2010-12-01 10:11:17

回答

8

你可以嘗試這樣的事情。

void ScrollToLine(int lineNumber) 
    { 
     if (lineNumber > richTextBox1.Lines.Count()) return; 

     richTextBox1.SelectionStart = richTextBox1.Find(richTextBox1.Lines[lineNumber]); 
     richTextBox1.ScrollToCaret(); 
    } 

如果您的RichTextBox中有很多重複,這將無法完美工作。我確實希望它對你有些用處。

0

我不知道,如果它有這種方法,但如何在Text計數的換行符,然後設置插入符(通過SelectionStartSelectionLength)和ScrollToCaret()

-1

難道在這種情況下幫助分裂的文本? 例如:

string[] lines = myRichTextBox.Text.Split('\n');
int linesCount = lines.Length;

這會告訴你的行數。

1

有了這個代碼,光標跳轉到想要的行的第一列。

它完全在任何情況下。

void GotoLine(int wantedLine_zero_based) // int wantedLine_zero_based = wanted line number; 1st line = 0 
{ 
    int index = this.RichTextbox.GetFirstCharIndexFromLine(wantedLine_zero_based); 
    this.RichTextbox.Select(index, 0); 
} 
相關問題