0
我有一個richTextBox,我更新追加文本在一個recrusive函數中的所有時間。 在這種情況下即時將我的硬盤上的目錄添加到richTextBox。 我這樣做時,文本下來右邊的酒吧會留下來,所以如果我想看到舊的文本我需要向上滾動。如何快速滾動文本時aovid richTextBox閃爍?
Thep問題是,當即時通訊從硬盤添加目錄作爲字符串,其工作速度非常快,使文本和酒吧在右側閃爍或跳躍。
這是我在構造函數中做了設置:
richTextBox1.TabStop = false;
richTextBox1.ReadOnly = true;
richTextBox1.BackColor = Color.White;
richTextBox1.Cursor = Cursors.Arrow;
richTextBox1.Enter += richTextBox1_Enter;
richTextBox1.BackColor = Color.White;
這是ruchTextBox文本改變事件:
private void richTextBox1_TextChanged(object sender, EventArgs e)
{
richTextBox1.SelectionStart = richTextBox1.Text.Length;
richTextBox1.ScrollToCaret();
}
這使得在RichTextBox到scorll下來,所以我所有的時間看新的文本饋送,如果我想看到之前添加的文本,我需要抓住右邊的酒吧。
這是怎麼IM將在recrusive功能的文本在RichTextBox:
this.Invoke(new MethodInvoker(delegate { ColorText.Texts(richTextBox1, "Level: " + levels.ToString(), Color.Green); }));
this.Invoke(new MethodInvoker(delegate { ColorText.Texts(richTextBox1, " Loading The Url: ", Color.Red); }));
this.Invoke(new MethodInvoker(delegate { ColorText.Texts(richTextBox1, url + "...", Color.Blue); }));
這是用來讀取硬盤的目錄,並返回它作爲一個List
private List<string> offline(string targetDirectory)
{
if (targetDirectory.StartsWith("http://"))
{
targetDirectory = targetDirectory.Substring("http://".Length);
}
List<string> directories = new List<string>();
try
{
string[] dirs = Directory.GetDirectories(targetDirectory,"*.*",SearchOption.TopDirectoryOnly);
for (int i = 0; i < dirs.Length; i++)
{
string t = "http://" + dirs[i];
directories.Add(t);
}
}
catch
{
}
return directories;
}
功能IM