如何获得一个标签的换行功能的文本,这是越界?


当前回答

事实上,公认的答案是不必要的复杂。

如果您将标签设置为“自动大小”,它将随着您放入的任何文本而自动增长。(这包括垂直增长。)

如果你想让它以特定的宽度换行,你可以设置MaximumSize属性。

myLabel.MaximumSize = new Size(100, 0);
myLabel.AutoSize = true;

测试和工作。

其他回答

简单的回答是:关闭自动大小设置。

这里的大问题是标签不会自动改变它的高度(只改变宽度)。要做到这一点,你需要子类化标签,并包括垂直调整大小逻辑。

基本上你需要在OnPaint中做的是:

测量文本高度(Graphics.MeasureString)。 如果标签高度不等于文本的高度,则设置高度并返回。 绘制文本。

您还需要在构造函数中设置ResizeRedraw样式标志。

在我的案例中(面板上的标签),我设置标签。AutoSize = false和标签。停靠=填充。 标签文本自动自动换行。

设置AutoEllipsis属性为“TRUE”,AutoSize属性为“FALSE”。

如果需要保持按钮尺寸不变:

myButton.Text = "word\r\nwrapped"

这个问题的简单答案是改变Label的DOCK属性。默认为“NONE”。