Windows 양식 레이블에서 텍스트를 선택할 수 있습니까?
Windows Form 레이블 컨트롤에서 텍스트의 일부를 강조 표시/선택할 수 있습니까?나는 RTF 텍스트 상자 컨트롤로 가능하다는 것을 알고 있지만 레이블의 많은 인스턴스를 만들어야 하기 때문에 해당 컨트롤을 사용하면 오버킬이 발생할 수 있습니다.
Windows 양식 레이블에서 텍스트를 선택할 수 있습니까? - 아니요. 최소한 레이블을 무시하지 않고는 쉬운 방법이 없습니다.도장 방법)
이를 위해 텍스트 상자를 쉽게 변경할 수 있습니다.
TextBox1.Text = "Hello, Select Me";
TextBox1.ReadOnly = true;
TextBox1.BorderStyle = 0;
TextBox1.BackColor = this.BackColor;
TextBox1.TabStop = false;
TextBox1.Multiline = True; // If needed
안 믿어요?여기 당신을 위한 예가 있습니다.
옵션 2(레이블 텍스트 복사만 활성화하려는 경우)
레이블을 두 번 클릭하면 텍스트가 클립보드에 복사됩니다.기본 winforms Label 기능입니다.원하는 경우 도구팁 컨트롤을 추가하여 사용성을 향상시킬 수 있습니다.
레이블을 두 번 클릭하면 텍스트가 클립보드에 복사됩니다.이제 Windows Forms 레이블의 기본 동작입니다.
발라가 대답한 것처럼:
"BorderStyle이 없음으로 설정되고 Readonly가 true 및 Backcolor로 설정된 TextBox를 사용하여 컨테이너와 일치시킵니다."
텍스트 문자열이 매우 긴 경우Width
의TextBox
모든 텍스트를 표시하기에는 충분하지 않습니다. 그러면 다음을 설정할 수 있습니다.Width
의 재산.TextBox
모든 텍스트를 표시합니다.
올바른 번호를 알아야 할 경우Width
그러면 당신은 그것을 사용할 수 있습니다.MeasureString
의 방법Graphics
이를 위하여다음에서 인스턴스를 가져올 수 있습니다.CreateGraphics()
의 방법Control
(TextBox
이 경우).
첫 번째 매개변수는 TextBox의 Text이고 두 번째 매개변수는 TextBox의 Font입니다.이 함수는 반환됩니다.SizeF
구조의이 속성의 Width 속성만 필요합니다. 다음을 사용하여 정수로 변환합니다.(int)size.Width
또는(int)Math.Round(size.Width)
.
전화하는 것을 잊지 마세요.Dispose()
더 이상 필요하지 않기 때문에 그래픽 인스턴스의 메서드입니다.
이 모든 과정을 수행할 기능을 직접 작성할 수 있습니다.
static void SetText(TextBox textBox, string str)
{
Graphics graphics = textBox.CreateGraphics();
SizeF size = graphics.MeasureString(str, textBox.Font);
graphics.Dispose();
textBox.Width = (int)Math.Round(size.Width);
textBox.Text = str;
}
사용TextBox
와 함께BorderStyle
로 설정한.None
그리고.Readonly
로 설정한.true
컨테이너의 색상과 일치하는 백컬러를 선택합니다.
아니요, Windows 양식 레이블에서 텍스트를 선택할 수 없습니다.대신 읽기 전용 텍스트 상자를 사용할 수 있습니다.
레이블에서 텍스트의 일부를 강조 표시할 수 없습니다.그러나 이미지를 사용하여 레이블로 설정할 수 있습니다.이 레이블의 텍스트가 정적인 경우 이미지 속성.
이 질문이 레이블 텍스트의 일부를 선택하는 것에 관한 것이라는 것을 알지만, 텍스트는 최종적으로 클립보드에 배치되어야 한다고 생각합니다.
따라서 전체 텍스트를 복사하는 것이 괜찮다면 다음과 같이 설정합니다.Click
텍스트를 클립보드에 복사하는 레이블의 이벤트:
myLabel.Click += new System.EventHandler(MyLabel_Click);
// ...
private void MyLabel_Click(object sender, EventArgs e)
{
Clipboard.SetText(myLabel.Text);
}
언급URL : https://stackoverflow.com/questions/7748137/is-it-possible-to-select-text-on-a-windows-form-label
'source' 카테고리의 다른 글
Python에서 클래스 속성을 어떻게 문서화합니까? (0) | 2023.06.09 |
---|---|
SQL join + group_concat이 일부 행을 반환하지 않음 (0) | 2023.06.09 |
Firestore - 문서에서 특정 필드 가져오기 (0) | 2023.06.09 |
안드로이드의 시스템 버전을 확인하려면 어떻게 해야 합니까? (0) | 2023.06.09 |
gcc용 코드 생성기 백엔드를 어떻게 작성합니까? (0) | 2023.06.09 |