2013-04-23 65 views
0

這是一個完整的VS2010項目來重現問題:http://temp-share.com/show/dPf3aqi7W垂直文本Changed事件期間滾動文本框的Scintilla

設置一個文本框Scintilla.Net用繩子和滾動到最後一行不起作用。

This Q & A How make autoscroll in Scintilla?已回答,但不會工作與設置文本同時。

裸露的骨頭攝製:

private void button1_Click(object sender, EventArgs e) 
{ 
    string s = RandomString(400); 
    scintilla1.Text = s + " " + s + " " + s + " " + s + " " + s; 
    scintilla1.Scrolling.ScrollBy(0, 10000); //<-doesn't work (but does work eg in a Button2_click) 
} 

private static Random random = new Random((int)DateTime.Now.Ticks); 
private string RandomString(int size) 
{ 
    StringBuilder builder = new StringBuilder(); 
    char ch; 
    for (int i = 0; i < size; i++) 
    { 
     ch = Convert.ToChar(Convert.ToInt32(Math.Floor(26 * random.NextDouble() + 65))); 
     builder.Append(ch); 
    } 
    return builder.ToString(); 
} 

有誰知道如何設置文本後垂直向下滾動到端線?

回答

1

那麼你可以嘗試在添加文本後放置Refresh();

scintilla1.Text = S + 「」 + S + 「」 + S + 「」 + S + 「」 + S;
scintilla1.Refresh();

對於這種情況我發現你需要刷新()兩次取決於你放在文本框中的字符串的長度。

+0

說真的,我給這樣的走了。它的工作,謝謝亨德里克 - '你將會是一個C#MVP快!'嘿 – 2013-04-30 03:09:06

+0

謝謝搭檔。我仍然需要學習很多,你們提供解決方案真棒。 – 2013-04-30 03:27:11