2011-12-31 1 views
-1

、私はボタン2の下で、このようなコードを持ってrichtextboxの行を取得するには?その上にコンテンツを表示することなく、リッチテキストボックスの行を取得する方法

for (int i = 0; i < split.Length; i++) 
    richTextBox2.Text* += split[i] + "\n"; 
    MessageBox.Show("Tamam!");` 

が、それは私がこのコードを使用しなかった場合は、リッチテキスト上のコンテンツを表示するには時間がかかりすぎます上記のコードに関連するボタン3の下に別のコードがあります

  foreach (string line in *richTextBox2.Lines*) 

この問題を解決するにはどうすればよいですか?

+0

は、あなたが全体のテキストにそれをループしているとこれまで必要なものを表示するのに時間がかかります。あなたの必要なテキストまたは行がキャプチャされたときにループを解除してください – Dotnet

+0

あなたが達成しようとしていることの中で、 – Dotnet

答えて

0

あなたが達成したいことはわかりませんが、コントロールの更新に時間がかかる場合は、コントロールのレンダリングを停止するためにループを開始することがあります。もう一度それを有効にすることを忘れないでください。

ので、同様:

richtextBox2.SuspendLayout(); 
for (int i = 0; i < split.Length; i++) 
{ 
    richTextBox2.Text* += split[i] + "\n"; 
} 
MessageBox.Show("Tamam!"); 
richtexbox2.ResumeLayout(); 

http://msdn.microsoft.com/en-us/library/system.windows.forms.control.suspendlayout.aspx

または蓄積のStringBuilder第一および割り当てを使用して文字列:

var builder = new StringBuilder(); 
for (int i = 0; i < split.Length; i++) 
{ 
    builder.Append(split[i]); 
    builder.Append('\n'); 
} 
richTextBox2.Text = builder.ToString(); 

http://msdn.microsoft.com/en-us/library/y9sxk6fy.aspx