C # WinForms 텍스트 상자가 포커스를 받으면 브라우저의 주소 표시 줄처럼 작동하기를 원합니다.
무슨 뜻인지 보려면 웹 브라우저의 주소 표시 줄을 클릭하십시오. 다음과 같은 동작이 나타납니다.
- 텍스트 상자를 클릭하면 텍스트 상자의 초점이 맞지 않은 경우 모든 텍스트를 선택해야합니다.
- 텍스트 상자에서 마우스를 아래로 끌어서 마우스로 강조 표시 한 텍스트 만 선택해야합니다.
- 텍스트 상자에 이미 초점이 맞춰져 있으면 클릭해도 모든 텍스트가 선택되지는 않습니다.
- 프로그래밍 방식으로 또는 키보드 탭을 통해 텍스트 상자에 초점을 맞추면 모든 텍스트를 선택해야합니다.
WinForms에서 정확히 이것을하고 싶습니다.
가장 빠른 총 경고 : 응답하기 전에 다음을 읽으십시오! 고마워 :-)
.Enter 또는 .GotFocus 이벤트 중에 .SelectAll ()을 호출 하면 사용자가 텍스트 상자를 클릭 한 경우 캐럿이 클릭 한 위치에 캐럿이 배치되어 모든 텍스트가 선택 취소되므로 작동하지 않습니다 .
사용자가 마우스로 텍스트를 선택할 수 없기 때문에 .Click 이벤트 중에 .SelectAll ()을 호출하면 작동 하지 않습니다. .SelectAll () 호출은 사용자의 텍스트 선택을 덮어 씁니다.
포커스 / 엔터 이벤트 입력시 BeginInvoke ((Action) textbox.SelectAll)을 호출 하면 위의 규칙 # 2가 위반되어 작동하지 않습니다 . 포커스에서 사용자의 선택을 계속 무시합니다.