Keerthana Hari Ответов: 3

Добавление HTML-тегов в stringbuilder не работает


Я пытаюсь достичь стиля строкового формата , такого как несколько слов жирным шрифтом ,подчеркнутый текст, курсив, а также.
Пример, который я попробовал, не работает, как указано ниже, с помощью string builder.

Я попробовал использовать stringBuilder Append(),AppendFormat() и AppendLine(), но ничего из этого не сработало. Я не хочу разбивать содержимое на подстроки и применять стили шрифтов через код C#.

Есть ли какой-нибудь способ применить стиль для строкового типа В C#? пожалуйста, предложите какие-нибудь лучшие подходы для его достижения.

Что я уже пробовал:

var textWithBrakeLine = string.Format(text, Environment.NewLine);
            StringBuilder builder = new StringBuilder();
            builder.AppendLine("<html>");
            builder.AppendLine("<body>");
            builder.AppendLine("<p>Hello how are you doing? <FINE/NOTWELL>");
            builder.AppendLine("<p></br>");
            builder.AppendLine("</body>");
            builder.AppendLine("</html>");          

            MessageBox.Show(builder.ToString(), "sample text", MessageBoxButtons.OK);

3 Ответов

Рейтинг:
2

phil.o

Предполагая, что вы используете a Система.Окна.Формы.MessageBox[^] (вы не указали, какой тип проекта):
Невозможно отформатировать текст документа. MessageBox У вас не может быть полужирного, курсивного и т. д. спецификаторов формата. И он также не будет распознавать формат HTML.

Есть решения, но это подразумевает, что

- либо вы находите статью, в которой кто-то уже сделал эту работу; например, есть одна здесь, на CP: FlexibleMessageBox – гибкая замена для .NET MessageBox[^]
Нет и не может быть другим,. Например, вы можете найти в Google "c# winforms formatted messagebox".

- или вы реализуете свое собственное окно сообщений, подклассируя Form класс.

public class FormattedMessageBox : Form
{
   // Here you can implement a message box the way it suits you
}


Более того, я хотел бы сказать, что даже если бы можно было отформатировать окно сообщений Windows Forms с помощью некоторого HTML-кода, как вы пытались это сделать, результат, который вы бы получили, не был бы действительным html-кодом. Вот к чему прибегнет строящаяся вами струна:
<html>
<body>
<p>Hello how are you doing? <FINE/NOTWELL>
<p></br>
</body>
</html>

Строка 3: Вы не можете написать a < или > символ в строке HTML, поскольку эти символы используются синтаксическими анализаторами HTML для идентификации тегов документа. Таким образом, <FINE/NOTWELL> будет интерпретироваться как HTML-тег; недопустимый. Писать < и > в HTML-документе вы должны использовать &lt; и &gt;, соответственно.
Может быть, это поможет вам понять сущности HTML:
HTML-объекты - w3schools[^]

Строка 3: открытие <p> бирка нуждается в своем закрытии </p> копия.

Строка 4: то же замечание, что и выше.


Рейтинг:
1

JackLPonce

Я предполагаю, что у вас есть приложение Windows Forms, не так ли?

В этом случае вы можете создать свою собственную форму и добавить в нее RichTextBox, который затем можно использовать для добавления форматированного текста.
Вы можете использовать эту форму в качестве пользовательского ящика сообщений.
Например, проверьте эта должность, люди опубликовали некоторые решения для расширенного MessageBox.


Рейтинг:
0

Member 7870345

Я боюсь, что то, что вы хотите (показать html-текст в MessageBox), это невозможно.
MessageBox принимает только обычный текст.
Прости!!


Keerthana Hari

Я попытался отформатировать строку с помощью HTML-тегов, а затем показать в окне сообщения, которое не работает .Итак, спрашивая, есть ли способ отформатировать мой контент и показать его как всплывающее окно?