0

私は、再帰関数で常に追加テキストを更新するrichTextBoxを持っています。この場合、ハードディスクから richTextBox にディレクトリを追加します。テキストが下に来ると、右側のバーが下にとどまるので、古いテキストを見たい場合は上にスクロールする必要があります。

問題は、ハードディスクからディレクトリを文字列として追加すると、非常に高速に動作し、右側のテキストとバーがちらついたりジャンプしたりすることです。

これは、コンストラクターで行った設定です。

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 が下にスクロールするようになるため、以前に追加されたテキストを見たい場合は、右上のバーをつかむ必要がある場合、常に新しいテキスト フィードが表示されます。

これは、再帰関数でテキストを 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); }));

これは、ハードディスクからディレクトリを読み取り、リストとして返すために使用する関数です

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;

        }
4

1 に答える 1

0

更新中にフォームの描画を無効にすることができます。

WM_SETREDRAW というメッセージを送信して、描画を無効にしたり有効にしたりできます。

http://fgaillard.com/2011/02/the-unfortunate-effect-of-wm_setredraw/

于 2012-10-26T01:11:01.783 に答える