一尘不染

Windows窗体中标签的自动换行

c#

我们如何获得Windows窗体中标签的自动换行功能?

我在面板上放置了标签,并添加了一些文本来动态标记。但是它超过了面板的长度。我该如何解决?


阅读 366

收藏
2020-05-19

共1个答案

一尘不染

快速答案: 关闭 AutoSize

这里最大的问题是标签不会自动更改其高度(仅更改宽度)。要实现此目的,您将需要对标签进行子类化,并包括垂直调整大小逻辑。

基本上,您需要在OnPaint中执行以下操作:

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

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

2020-05-19