현재 약 10 제어 이벤트 핸들러 내 프로그램에서이 코드를 가지고 : 조건이 충족 될 때까지 컨트롤을 비활성화하는 방법?
if (!mapLoaded)
return;
내가 참으로 mapLoaded 세트 파일 열기 대화 상자를 통해지도를로드
. 이 작업을 수행하는 또 다른 방법은 시작 및 모든 컨트롤을 사용하도록 맵을로드 한 후 모든 컨트롤을 비활성화하는 것입니다. 불행하게도 30 개 + 컨트롤이 있으며이 중 30 라인입니다 ..a.Enabled = true;
b.Enabled = true;
c.Enabled = true;
정말 this.Controls 통해 foreach 루프를 할 수없는 하나의 컨트롤 중 일부는 menustrip 항목의 ToolStrip 항목, 패널 항목이기 때문에 , 스크롤바, 스플리터 (splitter) 등을 포함하고 루프는 그것을 다루지 않습니다.
하나의 간단한 루프에서 모든 컨트롤의 enabled 속성을 true로 설정할 수있는 방법이 있지만 이상적인 방법은 아닙니다. 어떤 아이디어 그래서? 바인딩
이것은 내가 찾고있는 것입니다. 시도해 볼게. 감사! –
Windows Forms 디자이너를 사용하여 데이터 바인딩을 설정할 수 있다고 말했습니까? 그 옵션은 어디에 있습니까? 컨트롤을 선택할 때 Bindings 또는 DataBindings 속성이 속성 창에 나열되지 않습니다. –
@ 존,이 작업은 대개 VS2010에서 네 단계로 진행됩니다. ** 1. ** 새 개체 데이터 소스를 프로젝트에 추가합니다. 이 경우'Form' 클래스 자체를 데이터 소스로 추가합니다. * Add Data Source * 마법사에서'Form' 클래스가 보이도록 프로젝트를 먼저 컴파일해야 할 수도 있습니다. ** 2. ** Form에 BindingSource 컴포넌트를 추가하고 폼의 객체 데이터 소스를 선택하십시오. ** 3. ** Form의 생성자에서'formBindingSource.DataSource = this;'를 설정하십시오. ** 4. ** 데이터 바인딩을 정의하려면 모든 컨트롤의 * Properties *에서 * Advanced Bindings * 마법사를 사용하십시오. – stakx