回答
這裏是你如何滾動到選擇:
textBox.ScrollToCaret();
滾動到指定行,你可以通過TextBox.Lines財產循環,共它們的長度找到的開始指定的行,然後設置TextBox.SelectionStart來定位插入符。
東西沿着這(未經測試的代碼)行:
int position = 0;
for (int i = 0; i < lineToGoto; i++)
{
position += textBox.Lines[i].Length;
}
textBox.SelectionStart = position;
textBox.ScrollToCaret();
+1瞭解這個問題:) – SirDemon 2009-04-11 07:18:34
我感謝你的回答... – alinpopescu 2009-04-11 07:41:54
或者,「position = textBox.Text.Length」避免循環。 – 2011-09-01 22:47:15
的循環答案找到合適的插入位置有幾個問題。首先,對於大型文本框,速度很慢。其次,製表符似乎混淆了它。更直接的路線是使用所需的文本。
String textIWantShown = "Something on this line.";
int position = textBox.Text.IndexOf(textIWantShown);
textBox.SelectionStart = position;
textBox.ScrollToCaret();
這段文字當然必須是唯一的,但是您可以從textBox.Lines數組中獲得它。就我而言,我已經在顯示的文本中添加了行號,所以這使得生活更輕鬆。
private void MoveCaretToLine(TextBox txtBox, int lineNumber)
{
txtBox.HideSelection = false;
txtBox.SelectionStart = txtBox.GetFirstCharIndexFromLine(lineNumber - 1);
txtBox.SelectionLength = txtBox.Lines[lineNumber - 1].Length;
txtBox.ScrollToCaret();
}
這是我找到了最好的解決辦法:
const int EM_GETFIRSTVISIBLELINE = 0x00CE;
const int EM_LINESCROLL = 0x00B6;
[DllImport("user32.dll")]
static extern int SendMessage(IntPtr hWnd, int wMsg, int wParam, int lParam);
void SetLineIndex(TextBox tbx, int lineIndex)
{
int currentLine = SendMessage(textBox1.Handle, EM_GETFIRSTVISIBLELINE, 0, 0);
SendMessage(tbx.Handle, EM_LINESCROLL, 0, lineIndex - currentLine);
}
它的好處,在於選擇和尖位置不改變。
- 1. 如何使用java腳本滾動到富文本框中的指定行
- 2. 如何在WinForms中創建自動滾動多行文本框?
- 3. 獲取滾動條的滾動了一個WinForms文本框(C#)
- 4. 如何使用C#滾動到RichTextBox控件的指定行號?
- 5. 如何指示單行C#winforms文本框中有更多文本?
- 6. 滾動到C#文本框的底部
- 7. Winforms滾動文本控件
- 8. 如何在文本框中找到指定的行
- 9. C#winforms:將文本從一個文本框移動到另一個文本框
- 10. 在Winforms中自定義滾動c#
- 11. C#WinForms - 向文本框中的每行添加文本
- 12. 文本框滾動到下一行
- 13. 「滾動」單行文本框
- 14. 如何使c#winforms中的數據庫自動完成的多值文本框
- 15. 如何在多行文本框中不斷滾動到文本的末尾?
- 16. 我如何可以滾動到特定的行使用C#
- 17. FFMPEG C#Winforms輸出到文本框
- 18. C#將通用列表綁定到文本框WinForms?
- 19. 如何滾動到多行文本框的底部?
- 20. 如何在WM 6.5中創建手指可滾動文本框?
- 21. 如何在文本框中滾動?
- 22. 如何滾動到指定的位置?
- 23. RichTextBox中的自動滾動C#WinForms
- 24. 如何動態添加指定數量的文本框到gridview?
- 25. 如何使用滾動條的WPF文本框在添加行時自動滾動到底部?
- 26. WinForms文本框中的換行符
- 27. 在富文本框中選擇文本時禁用滾動(C#)
- 28. 如何滾動到使用SendMessage中的EM_SETSCROLLPOS的文本框的底部?
- 29. 如何設置滾動條移動到多行文本框的最後一行?
- 30. 如何防止添加文本時滾動多行文本框?
什麼樣的文本框(ASP.NET,WinForms,WPF?)以及「go to」是什麼意思?選擇整條線?強制它將該行滾動到視圖中? – 2009-04-11 07:09:55
WinForms ...將鼠標移動到指定的行 – alinpopescu 2009-04-11 07:15:18
ican循環如何產生TextBox?我是編程初學者 – alinpopescu 2009-04-11 07:24:03