web.py сделал меня счастливым в прошлом. Рассмотрите проверку его.
, Но это действительно кажется, что архитектурная модернизация могла бы быть надлежащим, хотя более дорогой, решением.
Быстрый ответ: выключите AutoSize .
Большая проблема здесь в том, что этикетка не изменит свою высоту автоматически (только ширину). Чтобы сделать это правильно, вам необходимо создать подкласс метки и включить логику вертикального изменения размера.
В основном, что вам нужно сделать в OnPaint:
Вам также потребуется установить флаг стиля ResizeRedraw в конструкторе.
Из MSDN , Автоматически переносить текст в ярлык :
using System;
using System.Text;
using System.Drawing;
using System.Windows.Forms;
public class GrowLabel : Label {
private bool mGrowing;
public GrowLabel() {
this.AutoSize = false;
}
private void resizeLabel() {
if (mGrowing)
return;
try {
mGrowing = true;
Size sz = new Size(this.Width, Int32.MaxValue);
sz = TextRenderer.MeasureText(this.Text, this.Font, sz, TextFormatFlags.WordBreak);
this.Height = sz.Height;
}
finally {
mGrowing = false;
}
}
protected override void OnTextChanged(EventArgs e) {
base.OnTextChanged(e);
resizeLabel();
}
protected override void OnFontChanged(EventArgs e) {
base.OnFontChanged(e);
resizeLabel();
}
protected override void OnSizeChanged(EventArgs e) {
base.OnSizeChanged(e);
resizeLabel();
}
}