Tworzę funkcję, która pobiera RichTextBox i ma dostęp do listy słów kluczowych & "badwords". Muszę podkreślić wszystkie słowa kluczowe, które można znaleźć w RichTextBox , gdy użytkownik wpisuje, co oznacza, że funkcja jest wywoływana za każdym razem, gdy zostanie wydany klucz edycji.Wyróżnianie składni RichTextBox w czasie rzeczywistym - Wyłączanie odświeżania
Napisałem tę funkcję, ale słowa i kursor w polu migoczą za dużo dla wygody.
Znalazłem rozwiązanie - aby wyłączyć możliwość odświeżenia RichTextBox podczas edycji i formatowania jego tekstu. Jednak jedynym sposobem, wiem, aby to zrobić, aby przesłonić funkcja „WndProc” i przechwytujący (co ja o to, aby zebrać) komunikat przemalować następująco:
protected override void WndProc(ref System.Windows.Forms.Message m)
{
if (m.Msg == 0x00f) {
if (paint)
base.WndProc(ref m);
else
m.Result = IntPtr.Zero;
}
else
base.WndProc(ref m);
}
Jeżeli wartość logiczna „farba” jest ustawione na false tuż przed rozpoczęciem podświetlania i na true, kiedy skończę. Ale jak już powiedziałem, funkcja, którą wykonuję, musi przyjmować RichTextBox; Nie mogę użyć podklasy.
Czy istnieje sposób, aby wyłączyć automatyczne odświeżanie RichTextBox "z zewnątrz?"
Ten dodatek do zajęć nie działa dla mnie. Powoduje to pewne problemy z grafiką i ostatecznie sterowanie przestaje działać całkowicie, tak że nie można nawet przewijać kursora. FYI. – MoonKnight
Bardzo standardowy tryb niepowodzenia podczas aktualizowania kontroli z wątku roboczego. –
Hans, jestem zupełnie nowy w tych rzeczach. Co mówisz/sugerujesz powyższym? Że po powyższym rozszerzeniu klasy, aktualizacje do pola tekstowego powinny być wykonywane w osobnym wątku? Dziękuję za Twój czas. – MoonKnight