2009-09-15 3 views
6

간단한 질문 : 저는 WinForms 버튼이 있는데, 그것을 (조건부로) 보이지 않게하고 싶지 않습니다. (보이지 않는 버튼이있는 공간에서 누군가가 클릭하면 활성화되지 않습니다.) button.Visible = falsebutton.Enabled = false을 의미하거나 적절한 시점에 두 속성을 모두 설정/재설정해야합니까?Winforms 단추 : Visible = false는 암시? Enabled = false?

+1

나는 바보/게으른 질문이 없지만 진지하게, 왜 방금 시도하지 않았는지 알고있다. :/ –

+2

어쨌든 숨기기 버튼을 비활성화해야하는 이유는 무엇입니까? 기본 기능을 비활성화하십시오 (플래그를 테스트하거나 버튼을 비활성화해야 함을 알고 있음). 이렇게하면 바보 같은 사용자가 도구를 사용하여 단추를 다시 표시하거나 보이지 않는 활성화 된 단추에 일부 창 메시지를 보내더라도 응용 프로그램은 수행하지 말아야 할 일을하지 않습니다. 즉, 기능을 사용하지 않으려면 전면 도어뿐만 아니라 기능을 비활성화하십시오. – OregonGhost

답변

5

컨트롤이 보이지 않으면 효과적으로 비활성화됩니다. 표시되는 영역에서 클릭 (또는 해당 영역 밖으로 롤아웃)하면 이벤트가 발생하지 않습니다.

편집이 : 다른 반응과 의견에 따라, 명확히하기 위해, 버튼을 하지 장애인 및 기본 이벤트 기능 프로그램 계속 사용할 수 있지만 버튼 형식과 사용자에 대한 물리적/사용할 수 표시되지 않습니다 프로그래머가 다른 방법으로 프로그래밍 방식으로을 제공하지 않는 한 어떤 식 으로든 프로그램과 상호 작용할 수 없습니다.

+0

버튼을 활성화하기 위해 마우스를 클릭하는 것 (예 : 키보드) 이외의 다른 방법이 있습니다. 버튼을 누르는 방법이 있는지 물어보기 위해 마우스를 통해 액세스 할 수있는 것이 아니라 그의 질문을 읽었습니다. – recursive

+0

@ 재귀 적 : 포인트가 유효한 동안 컨트롤이 숨겨져 있고 포커스를 다시 얻을 수 없을 때 포커스를 잃을 것으로 예상됩니다. 그래도 사실 일 수는 없지만 니모닉에는 어떤 일이 일어날 지 모르겠습니다. 그러나 그때조차도 마우스 나 키보드없이 버튼을 누르는 방법이 있습니다. UI 자동화가 떠오른다. – OregonGhost

1

Visible을 false로 설정하면 이 아닌 Enabled 속성이 변경됩니다. 그러나 속성을 false로 설정하면 컨트롤이 효과적으로 존재하지 않게됩니다. 보이지 않는 버튼으로 남겨진 빈 공간을 클릭하면 버튼의 클릭 이벤트가 실행되지 않습니다.

+0

고마워, 조엘. 그것은 기본적으로 필요한 것입니다. 사용자가 클릭 할 수 없도록해야합니다. –

1

나는 이것이 사용 중지되었다고 생각하지 않습니다. 그것은 컨트롤이 폼에 보이지 않기 때문에 액션을 수행 할 방법이 없다는 것을 의미합니다. visible 속성을 false로 설정 한 다음 처리 할 코드를 통해 Click 이벤트를 호출 한 경우 그러나 Enabled 속성을 False로 설정하면 그렇지 않을 것이라고 생각합니다.

1

.Visible = false이면 '_Click'동작이 해제됩니다. 예를 들어, 코드에서 .PerformClick() 및 .Visible = true이면 _Click이 실행됩니다. false이면 _Click이 실행되지 않습니다.

관련 문제