大きなテキスト (100,000 行以上のテキスト) を読み込んでいますが、textview で表示するのに非常に時間がかかります。この量のテキストをロードするのが難しいことは理解していますが、少なくともすべてのテキストがロードされるまでテキストビュー コントロールを無効にして、ユーザーがテキストビューにスクロールしたり、テキストビューにロードされている間に変更したりできないようにする方法はありますか?
私はそれを灰色 (敏感 = false) にし、テキストを読み込んでいるときに「読み込み中」と表示することをお勧めします。または、可能であれば、すぐに読み込まれる方法で読み込みます (たとえば、テキストの一部のみをレンダリングします)。
私が今使っているコードはとてもシンプルで、巨大なテキストは StringBuilder の中にあります
最初のバリアント:
// everything is StringBuilder
simpleview.Buffer.Text = everything.ToString();
if (ScrollingEnabled)
{
simpleview.ScrollToIter(simpleview.Buffer.GetIterAtLine(ContentLines.Count), 0, true, 0, 0);
}
2つ目(私には少し速く見えます)
simpleview.Buffer.Text = "";
simpleview.Buffer.InsertAtCursor(everything.ToString());
if (ScrollingEnabled)
{
simpleview.ScrollToIter(simpleview.Buffer.GetIterAtLine(ContentLines.Count), 0, true, 0, 0);
}
一度にすべてのテキストを表示する必要はありませんが、可能であればユーザーがすべてのテキストをスクロールして閲覧できるようにしたいと考えています。また、これは100 000行で遅いだけでなく、実際には1000行でも非常に遅く、非常に短いテキストであることに注意してください...