Czy można podświetlić/wybrać część tekstu w formancie etykiet Formularz systemu Windows? Wiem, że jest to możliwe z kontrolą RTFtextbox, ale użycie tej kontroli byłoby przesadą, ponieważ potrzebuję utworzyć wiele instancji etykiety.Czy można wybrać tekst na etykiecie formularza systemu Windows?
Odpowiedz
Czy można wybrać tekst na etykiecie formularza systemu Windows? - NIE (Przynajmniej nie jest to prosta metoda bez przesłonięcia metody Label.Paint).
Możesz łatwo zmienić TextBox w tym celu.
TextBox1.Text = "Hello, Select Me";
TextBox1.ReadOnly = true;
TextBox1.BorderStyle = 0;
TextBox1.BackColor = this.BackColor;
TextBox1.TabStop = false;
Nie wierzysz? oto przykład dla ciebie.
Problem, który można napotkać, polega na tym, że dynamicznie ustawiając tekst texbox, ukryje tekst, jeśli jest szerszy niż pole tekstowe, w przeciwieństwie do etykiety. –
@TheMuffinMan musisz ustawić właściwość «WordWrap» na «true». –
W razie potrzeby można również ustawić wartość Multiline = True, aby móc zmieniać wysokość panelu TextBox. –
Nie, wybór tekstu na etykiecie formularza Windows nie jest możliwy. Zamiast tego możesz użyć do tego pola tekstowego tylko do odczytu.
użyć TextBox
z BorderStyle
zestaw do None
i Readonly
zestaw do true
i Backcolor na zgodny z pojemnika.
Nie można zaznaczyć części tekstu na etykiecie. Można jednak użyć obrazu i ustawić go na właściwość Label.Image, jeśli tekst tych etykiet jest statyczny.
to będzie naprawdę trudne do wdrożenia, a tekst jest dynamiczny - to dlatego potrzeba wyróżnienia niektórych z nich. – tunafish24
Jak Bala R odpowiedział:
"Użyj TextBox z BorderStyle ustawione na None i Readonly wartość true i Backcolor na zgodny z pojemnika.".
Jeśli ciąg Tekst jest bardzo długi, a Width
z TextBox
nie wystarczy, aby wyświetlić cały tekst, a następnie można ustawić właściwość TextBox
Width
wyświetlanie wszystkich jego tekst.
Jeśli potrzebujesz znać poprawną liczbę dla Width
, możesz użyć do tego celu metody MeasureString
z Graphics
. W tym przypadku można pobrać instancję z metody CreateGraphics()
().
Pierwszy parametr to tekst TextBox, a drugim parametrem jest czcionka TextBox. Ta funkcja zwraca strukturę SizeF
. Musisz tylko własność Width, przekonwertować ją na liczbę całkowitą z (int)size.Width
lub (int)Math.Round(size.Width)
.
Nie zapomnij zadzwonić później do metody Dispose()
instancji graficznej, ponieważ nie będzie już ona potrzebna.
Możesz napisać własną funkcję, która zrobi wszystko, ten proces:
static void SetText(TextBox textBox, string str)
{
Graphics graphics = textBox.CreateGraphics();
SizeF size = graphics.MeasureString(str, textBox.Font);
graphics.Dispose();
textBox.Width = (int)Math.Round(size.Width);
textBox.Text = str;
}
Jeśli masz pole tekstowe o stałej szerokości, które chcesz zmienić wysokość tego kodu, zobacz To pytanie: https://stackoverflow.com/questions/29299297/measure-text-height-wrapped-ina-a- określona szerokość – QuickDanger
- 1. Czy można wybrać tekst QLabel?
- 2. Konwersja identyfikatorów wiadomości systemu Windows na tekst
- 3. Atrybut id na etykiecie formularza symfony
- 4. Czy można fałszywe api konsoli systemu Windows?
- 5. make html tekst Nie można wybrać
- 6. Newline w etykiecie pola formularza Django
- 7. Wprowadzić tekst w etykiecie dla przycisku radiowego?
- 8. Pasek przewijania na etykiecie
- 9. Nie można opublikować formularza po dodaniu niestandardowego atr na etykiecie graficznej IE11?
- 10. Usługa systemu Windows a aplikacja systemu Windows - najlepsza praktyka
- 11. Niestandardowy tekst do szyn form_for etykiecie
- 12. Tekst nie jest zawijany w etykiecie etykiety
- 13. Ogólny szablon formularza Windows
- 14. Czy Mono można uruchamiać uniwersalne aplikacje systemu Windows?
- 15. Czy można wybrać EXISTS bezpośrednio?
- 16. Co wybrać interfejs API systemu Windows dla bogatej aplikacji klienckiej?
- 17. Czy można użyć dostawcy członkostwa asp.net w aplikacji systemu Windows?
- 18. Jak wybrać wszystkie elementy formularza?
- 19. Jak uniknąć wielu wystąpień formularza systemu Windows w C#
- 20. C# - OxyPlot, jak dodać działki do systemu Windows z formularza
- 21. Dlaczego nie pojawia się na etykiecie Windows Forms?
- 22. Różnica między instalatorem systemu Windows 3.1 i 4.5 Podczas tworzenia projektu SetUP, który można wybrać, gdy
- 23. Przycisk na etykiecie
- 24. Zmienianie tekstu na etykiecie
- 25. Czy można programować na systemie Windows RT
- 26. DLL systemu Windows na Linux System
- 27. make tekst wybierane wewnątrz Nie można wybrać div
- 28. QTextEdit. Jak ręcznie wybrać tekst?
- 29. Jak zadokować aplikację na pulpicie systemu Windows?
- 30. Skalowanie usług systemu Windows
Co masz na myśli przez „wybierz”? Masz na myśli wybór według kodu, aby użyć tego tekstu po? – GianT971
sorry @ John ... przez select mam na myśli wybór tekstu, np. w RichTextBox można użyć właściwości "SelectedText" etc, aby zaznaczyć/podświetlić część całego tekstu. Efekt jest podobny do zaznaczania/zaznaczania tekstu ręcznie za pomocą myszy. – tunafish24
Pomysł: możesz utworzyć klasę wywodzącą się z etykiety, w której masz jakąś właściwość do zapisywania początkowego i końcowego indeksu tekstu, który ma zostać wybrany, a następnie przesłonięcie zdarzenia, w którym możesz wyróżnić tekst rysując półprzezroczysty prostokąt nad nim – Marco