Reklama

C# – Tipy, rady, návody – 16: Automatické posunutí na konec textu v TextBoxu

Úvod

V tomto krátkém tipu jsou ukázány dva postupy jak lehce docílit toho, že při přidání textu do komponenty “TextBox” dojde k automatickému rolování až na konec vloženého textu, viz Obr. 1.
 
Ukázka automatického rolování textu

Ukázka automatického rolování textu

 
Tento návod lze dobře využít například pro vytváření informačního panelu apod.

Popis

Jako první nastavíme vlastnost pro více řádku “Multiline” na “True” a také doporučuji nastavit zobrazení obou posuvníků (horizontální a vertikální) pomocí nastavení vlastnosti “ScrollBars” na “Both”.
 
Jak již bylo řečeno, k rolování na konec textu lze využít dva způsoby. První způsob je založen na umístění počátku výběru textu pomocí vlastnosti “SelectionStart” na konec vytvářeného textu. Poté se na tento počátek výběru přesuneme pomocí metody “ScrollToCaret”. Názornou ukázku zápisu sta řádků a jejich přerolování až na konec lze vidět níže.

 

001: for (int i = 0; i < 100; i++)
002: {
003: // pridani radku
004: textBox_test.Text += "Line – " + i.ToString() + "\r\n";
005: }
006: // umisteni vyberu na konec textu
007: textBox_test.SelectionStart = textBox_test.Text.Length;
008: textBox_test.ScrollToCaret();// prechod na umisteny znak kurzoru

Druhý ještě jednodušší způsob je použít pro vkládání textu metodu “AppendText”. Tato metoda očekává pouze text, který se má přidat a poté dojde k automatickému zobrazení posledního přidaného textu. Použití této metody je také výrazně rychlejší než běžné přidání textu pomocí operátoru “+=”. Pomocí měření časové náročnosti kódu, které je popsáno ZDE, byly oba způsoby otestovány pro přidání 5000 řádků. První metoda pomocí operátoru “+=” trvala kolem 82 s, zatímco použití přidání textu pomocí metody “AppendText” trvalo pouze kolem 4 s a navíc nedocházelo k zamrznutí uživatelského rozhraní, jako u použití operátoru “+=”. Názorný příklad lze vidět níže.
 

001: for (int i = 0; i < 100; i++)
002: {
003: // pridani noveho textu
004: textBox_test.AppendText("Line – " + i.ToString() + "\r\n");
005: }

Následující a předchozí příspěvek v kategorii:

 
Následující: C# – Tipy, rady, návody – 17: Přetažení a použití objektu pomocí myši
Předchozí: C# – Tipy, rady, návody – 15: Výběr souboru pomocí OpenFileDialog a SaveFileDialog

 
Tajned facebook
 

Za případné chyby v textu, ve zdrojovém kódě, nebo ve schématickém zapojení se omlouváme.
AUTOŘI NEBEROU ŽÁDNOU ODPOVĚDNOST ZA PŘÍPADNÉ ÚJMY NA ZDRAVÍ ČI MAJETKU.