wordy tom rappinghood club canciones c# winforms c#-4.0 c#-3.0

c# - tom - Etiquetado envoltorio de palabras



tom tom club canciones (7)

Cambia tu tamaño máximo,

label1.MaximumSize = new Size(100, 0);

Y configure su autosize en verdadero.

label1.AutoSize = true;

¡Eso es!

Esta pregunta ya tiene una respuesta aquí:

¿Hay alguna manera de hacer un ajuste de palabras en un control de etiqueta .NET ?

Sé que hay una forma alternativa de usar un TextBox , hacer que la propiedad BorderStyle sea nula, la propiedad ReadOnly en true y establecer la propiedad WordWrap y la propiedad Multiline en true.

¿Hay algo para una etiqueta?


Consulte Ajustar automáticamente el texto en la etiqueta . Describe cómo crear su propia etiqueta en crecimiento.

Aquí está la fuente completa tomada de la referencia anterior:

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(); } }


Irónicamente, al desactivar AutoSize estableciéndolo en false , pude obtener las dimensiones de control de etiqueta para ajustar el tamaño tanto vertical como horizontalmente, lo que permite efectivamente que se produzca el ajuste de palabras.


Puede usar un TextBox y establecer multiline en true y canEdit en false .


Si abre el menú desplegable de la propiedad Text en Visual Studio, puede usar la tecla Intro para dividir líneas. Obviamente, esto solo funcionará para texto estático a menos que conozca las dimensiones máximas del texto dinámico.


Si desea un tamaño dinámico junto con una etiqueta de ajuste de palabras, puede hacer lo siguiente:

  1. Coloque la etiqueta dentro de un panel
  2. Maneje el ClientSizeChanged event para el panel, haciendo que la etiqueta llene el espacio:

    private void Panel2_ClientSizeChanged(object sender, EventArgs e) { label1.MaximumSize = new Size((sender as Control).ClientSize.Width - label1.Left, 10000); }

  3. Establezca Auto-Size para la etiqueta como true

  4. Configure el Dock para que la etiqueta se Fill

Simplemente configure la propiedad Label AutoSize en False. Luego, el texto se ajustará y podrá cambiar el tamaño del control manualmente para mostrar el texto.