2016-07-14 2 views
0

나는 레이블의 텍스트가 TextBox의 텍스트 's의 내용이 할 수있는, 하지만이 근본적인 이유Label이다'하는 방식에 복사/선택 할 수 없다는 웹에 대한 답변을 많이 보았다 복사 할 수 없습니까?레이블과 텍스트 상자 사이의 (기술적) 차이점은 무엇입니까?

윈도우 자체는 커서 위치 아래에서 텍스트를 찾을 수 있습니다. 그렇다면 왜 WinForm Label을 제어 할 수 없습니까?

+1

특정 참조가 없지만 기술적 문제가 아닌 디자인 문제 일 것으로 예상됩니다. – cdkMoose

+0

_Windows는 커서 위치에서 텍스트를 찾을 수 있음을 의미합니까? –

+0

나는 커서가 끝난 텍스트 (ieword)를 반환하는 API 호출 (VB6을했을 때 몇 년 전에 보았던 것)을 회상했다. – radders

답변

7

사용자가 컨트롤의 텍스트를 선택하거나 복사하려면 컨트롤을 클릭하거나 tab 컨트롤을 클릭하여 포커스를 설정할 수 있어야합니다.

Label은 설계 상 허용되지 않습니다.

레이블 컨트롤은 일반적으로 컨트롤에 대한 설명 텍스트를 제공하는 데 사용됩니다. 예를 들어 레이블을 사용하여 TextBox 컨트롤에 대한 설명 텍스트를 추가하여 컨트롤에 필요한 데이터 형식을 사용자에게 알릴 수 있습니다.

레이블 및 텍스트 상자는 모두 System.Windows.Control에서 상속되지만 다른 용도로 사용됩니다. 같은 방식으로 오렌지와 사과는 둘 다 과일이지만 다른 것입니다.

그러나, 응용 프로그램을 작성하고 라벨처럼 보이는 무언가를 갖고 싶어하는 경우,하지만 사용자가 선택할 수 있습니다 (그러나 편집) 텍스트는, 당신이 가진 을 사용할 수 있습니다 다음과 같은 속성을 설정합니다

  • Backcolor = Control
  • ReadOnly = true
  • BorderStyle = none
아래와 같이

... 당신은 응용 프로그램이 있고 라벨 같은 것을에서 텍스트를 얻으려면 당신이 알고있는 경우

A textbox that looks like a label, 당신은 Win32 API 함수 GetWindowText을 사용할 수 있습니다 텍스트를 포함한 윈도우의 핸들. Win32 컨텍스트에서 "창"은 마우스로 드래그 할 수있는 창뿐만 아니라 화면에있는 모든 항목을 의미합니다. WinForms은이 모든 것의 추상입니다.

마우스 커서 아래에있는 창으로 핸들을 가져 오는 방법은 this question을 참조하십시오.

+1

..... 레이블을 선택할 수 없다는 것을 전혀 알지 못했습니다. #MindBlown .... Btw, 정말 랩탑으로 코끼리를 벗어 났습니까? Brah, 그건 당신이 랩탑을 어떻게 사용하지 않는지 .... –

+0

@AnthonyRussell - 너도 알다시피, 나는 실제로했다!몇 년 전 잠비아, 아프리카에서 휴가를 보내면서 우리는 머무르고있는 곳 근처에 열이있는 남성 청소년이 있다고 경고했습니다. 어느 날 어느 날 저녁에 나무 아래에서 우리 한테 접근했습니다. 나는 그것에 소리 쳤고, 주위에 나의 휴대용 개인 컴퓨터를 흔들었다. 그것은 트릭을했다. 그리고 그것은 뒤로 물러났다. 그 것들이 biiiiiiig 있습니다! –

+1

어떤 브랜드의 노트북입니까? –

관련 문제