Programing

라벨 줄 바꿈

lottogame 2020. 12. 6. 20:51
반응형

라벨 줄 바꿈


이 질문에 이미 답변이 있습니다.

.NET 레이블 컨트롤 에서 줄 바꿈을 수행하는 방법이 있습니까?

TextBox 를 사용하고 BorderStyle 속성 을 none으로, ReadOnly 속성 을 true로 설정하고 WordWrap 속성과 Multiline 속성을 true로 설정 하는 다른 방법이 있다는 것을 알고 있습니다 .

레이블에 대한 것이 있습니까?


레이블에서 텍스트 자동 줄 바꿈을 참조하십시오 . 자신의 성장 레이블을 만드는 방법을 설명합니다.

위의 참조에서 가져온 전체 소스는 다음과 같습니다.

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

최대 크기 변경,

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

그리고 자동 크기를 true로 설정하십시오.

label1.AutoSize = true;

그게 다야!


Label AutoSize 속성을 False로 설정하기 만하면됩니다. 그런 다음 텍스트가 줄 바꿈되고 컨트롤의 크기를 수동으로 조정하여 텍스트를 표시 할 수 있습니다.


아이러니하게도 레이블 컨트롤 치수를 세로 및 가로 로 크기 조정하도록 AutoSize설정 하여 해제 하면 효과적으로 단어 줄 바꿈이 발생할 수 있습니다.false


TextVisual Studio 에서 속성에 대한 드롭 다운을 열면 Enter 키를 사용하여 줄을 분할 할 수 있습니다. 동적 텍스트의 최대 크기를 알지 못하는 경우 분명히 정적 텍스트에서만 작동합니다.


자동 줄 바꿈 레이블과 함께 동적 크기 조정을 원하는 경우 다음을 수행 할 수 있습니다.

  1. 패널 안에 라벨 넣기
  2. 를 처리 ClientSizeChanged event라벨이 공간을 채우기 만드는 패널 :

    private void Panel2_ClientSizeChanged(object sender, EventArgs e)
    {
        label1.MaximumSize = new Size((sender as Control).ClientSize.Width - label1.Left, 10000);
    }
    
  3. Auto-Size레이블에 대해 설정true

  4. Dock레이블에 대해 설정Fill

You can use a TextBox and set multiline to true and canEdit to false .

참고URL : https://stackoverflow.com/questions/9509147/label-word-wrapping

반응형