开发者

Multiline text as the button label in Windows Forms

Basically, I am creating 开发者_如何学Pythona button in an oval shape. But my button label is too long to display in one line, so I wanted to split it into multiple lines so that the oval button looks good.

How do I enable word wrap on a button?


If you want to set a button's label to multi-line text inside the VS designer, you can click on the "down arrow" at the right of the property field and then you are able to enter multiple lines of text.

Multiline text as the button label in Windows Forms

I tried this in VS 2015.


Set the label text on form load and add Environment.Newline as the newline string, like this:

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


Just add a newline in the text at the place where it should split.


Try to add "\n" to button's Text property in the places you want to wrap.


There are two options:

  1. If you are creating a custom control, then place a label control on it with the Autosize = true option. And adjust its size as per the buttons size.
  2. Add a new line wherever you want (a bit crude).


You can create custom Button with one additional property (say, Label) which converts "\n" occurrence into "real" newline (because VS designer cannot do it already 10 years):

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

Once you created such class, your SuperButton will be visible in Toolbox at Project page, so you don't loose visual way of design.


You just need to insert a line break (i.e. \n) in the button text.

Example:

Button1.AutoSize = true;

Button1.Text = "This is \n The Button Text";
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜