C # форматирование MessageBox - PullRequest
8 голосов
/ 24 марта 2011

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

Есть ли где-нибудь готовая библиотека, которую я могу использовать для этого, или я собираюсьдолжен написать один сам?

Ответы [ 5 ]

14 голосов
/ 24 марта 2011

Есть ли причина не просто создать Form с текстовым полем / меткой, используя моноширинный шрифт, а затем вызвать Form.ShowDialog?Похоже, отдельная библиотека с этим была бы для меня излишней.

9 голосов
/ 24 марта 2011

Для записи, это фактически возможно, MessageBox () расширяет вкладки.Например:

    private void button1_Click(object sender, EventArgs e) {
        MessageBox.Show(
            "hello\tworld\r\n" + 
            "second\tline");
    }

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

2 голосов
/ 26 июня 2013

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

http://www.codeproject.com/Articles/601900/FlexibleMessageBox-A-flexible-replacement-for-the

С уважением, Йорг

2 голосов
/ 24 марта 2011

Звучит так, как будто вы можете просто добавить новую форму и использовать несколько ярлыков ..

0 голосов
/ 18 февраля 2019

Я использую это:

public void myMessageBox(object str)
{
    System.Windows.Forms.MessageBox.Show( new System.Windows.Forms.Form{ TopMost = true, Width = 300}, str.ToString() );
}
...