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

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

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


person Dinesh    schedule 04.06.2010    source источник


Ответы (7)


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

btnOK.Text = "OK" + Environment.NewLine + "true";
person Rox    schedule 04.06.2010
comment
Это правильно, но можно немного улучшить: точно так же задайте текст в файле конструктора. Таким образом, графический интерфейс дизайнера форм покажет его правильно, что может помочь в позиционировании и изменении размера. - person Michael; 28.05.2015

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

Панель свойств многострочного текста VS

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

person Dan Mirescu    schedule 12.04.2016
comment
Пожалуйста. Я сам удивился, что долгое время не осознавал, что там существует маленькая стрелочка. - person Dan Mirescu; 25.07.2016
comment
ахах как просто! - person miguelmpn; 05.09.2017

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

person Giorgi    schedule 04.06.2010
comment
@Dimesh, а если сделать кнопку немного больше (или протестировать с меньшим шрифтом)? - person Henk Holterman; 04.06.2010
comment
Alt-Enter? Shift-Enter? Ctrl-Ввод? Один из них должен работать, вы увидите, что значение визуально разделено на две строки. - person Oren; 02.12.2015

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

person 0x49D1    schedule 04.06.2010

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

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

Вы можете создать пользовательскую кнопку с одним дополнительным свойством (скажем, 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 будет видна в панели инструментов на странице проекта, так что вы не потеряете визуальный способ дизайна.

person Vincent    schedule 21.12.2014

Вам просто нужно вставить разрыв строки (например, \n) в текст кнопки.

Пример:

Button1.AutoSize = true;

Button1.Text = "This is \n The Button Text";
person Khalid    schedule 30.07.2018