Многострочный текст как ярлык кнопки в Windows Forms

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

Как включить перенос слов на кнопку?

Ответ 1

Установите текст метки в загрузке формы и добавьте Environment.Newline в качестве строки новой строки, например:

btnOK.Text = "OK" + Environment.NewLine + "true";

Ответ 2

Если вы хотите установить метку кнопки для многострочного текста внутри конструктора VS, вы можете нажать "стрелку вниз" справа от поля свойства, а затем вы можете ввести несколько строк текста.

Многослойная панель свойств текстового поля VS

Я пробовал это в VS 2015.

Ответ 3

Просто добавьте новую строку в текст в том месте, где оно должно разбиться.

Ответ 4

Попытайтесь добавить "\n" в свойство Text в местах, которые вы хотите обернуть.

Ответ 5

Есть два варианта:

  • Если вы создаете настраиваемый элемент управления, установите на нем элемент управления меткой с параметром Autosize = true. И отрегулируйте его размер в соответствии с размером кнопок.
  • Добавьте новую строку туда, где вы хотите (немного грубо).

Ответ 6

Вы можете создать пользовательскую кнопку с одним дополнительным свойством (скажем, Label), которое преобразует "\n" в "настоящую" новую строку (поскольку разработчик VS не может сделать это уже 10 лет):

public string Label
{
    get { return (string.IsNullOrEmpty(Text) ? Text : Text.Replace("\n", @"\n")); }
    set {
        Text = (string.IsNullOrEmpty(value) ? value : value.Replace(@"\n", "\n"));
    }
}

После создания такого класса ваш SuperButton будет отображаться на панели инструментов на странице Project, поэтому вы не потеряете визуальный способ дизайна.