2011-02-22 2 views
1

편집 :레이블 업데이트의 BackColor를 더 빠르게 만들 수 있습니까?

나는 해결 방법을 관리했다. 이제 MouseEnter에 포커스를 버튼에 설정하고 MouseOverBackColor을 버튼의 현재 BackColor으로 변경합니다. 또한 GotFocus에 대한 BackColor을 변경하는 이벤트 핸들러 (버튼의 부모 컨테이너에 있음)가 있습니다. 왜 이런 식으로 작동하는지 모르겠지만이 특정 조합에서만 작동하도록했습니다. 다시 말하지만, 나는 그것을하기위한 더 나은 방법을 찾고 있습니다. 그래서 답을 찾으십시오.

버튼 재 지정을 만들었으며 Text 속성이 이제 사용자 정의 하위 레이블에 우선합니다. 문제는 단추에 적용된 스타일 (포커스/마우스 입력시 색상 변경)입니다.

내가 레이블을 부탁

는 따라 색상의 변경 및 지금까지 두 가지 방법으로 달성 :

  1. 설정 레이블의 BackColorOnMouseEnterOnMouseLeave 무시
  2. Transparent에 또한 라벨의를 변경하는 그에 따라 BackColor.

둘 다 작동합니다. 유일한 문제는 레이블의 BackColor을 변경할 때 약간의 지연이 있다는 것입니다. 이 결과는 Button의 BackColor이 변경 될 때 그래픽이 약간 찢어지는 결과를 낳습니다. 이것은 큰 문제는 아니지만 조금 성가신 일입니다. 당신이 나에게 줄 수있는 유용한 조언을 주시면 감사하겠습니다.

+0

은 왜 그냥 ** ** 영구적으로 투명 라벨의 배경색을 설정하지? –

+0

@ 대니얼 : 성능에 도움이 될지 의심 스럽네요. 그 질문은 그가 레이블의'BackColor'를 그 사이의 다른 * 것으로 바꾸고 있음을 나타내는 것 같지 않습니다. –

+0

맞아요, 그 질문은 그것을 나타내는 것이 아닙니다. 그러나 그것은 유일한 방법입니다. 두 시나리오 모두에서 지연을 설명 할 수 있습니다 ... –

답변

2

응용 프로그램이 Windows 메시지 펌프를 처리하는 빈도 나 유휴 상태에 따라 .NET에서 컨트롤의 그림을 즉시 업데이트하도록 Control.Update()를 호출해야 할 수 있습니다.

http://msdn.microsoft.com/en-us/library/system.windows.forms.control.update.aspx

+0

나는이 질문을 게시 했으므로, 특히이 특별한 문제. 이 질문을 되돌아 보면 지금까지했던 것처럼 실제로는별로 의미가 없습니다. :) 그렇다고해도 맞습니다. 메시지 펌프의 유속에 만족하지 않으면 필요한 것을 시행하십시오. – rotSin

+0

듣고 좋은 :) – MickyD