2010-05-25 5 views
1

방금 ​​입력란에 12 자의 ID를 확인하기 위해 텍스트 상자, 버튼, 라벨을 추가했습니다. 라이브러리는 check_ID라고합니다. 그것은 잘 작동합니다. 유일한 문제는 내가 레이블의 forecolor, 텍스트 상자의 backcolor, 프로젝트의 색 구성표 당 단추의 forecolor에 액세스해야한다는 것입니다.윈도우 컨트롤 라이브러리가 날카로운

하지만 check_ID에있는 개체의 속성을 수정하기 위해 사용할 수없는 것으로 보입니다.

나는 check_ID 프로젝트를 repo함으로써 모든 객체의 public으로 수정자를 변경했다.

Windows 컨트롤 라이브러리를 사용하여 만든 이러한 개체의 속성에 액세스하는 다른 방법이 있습니까?

미리 감사드립니다.

답변

0

속성을 명시 적으로 노출하고 코드에서 속성을 설정하여 외부에서 이러한 것들을 설정해야합니다. 또는 HTML 요소에 적절한 CSS 클래스를 넣을 수도 있습니다. 이렇게하면 컨트롤을 사용하는 모든 프로그래머가 외부에서 이러한 속성을 설정할 수 있습니다.

+0

HTML/CSS .. 나는 Visual Studio C sharp 형식을 사용하고 있습니다. – apals

+0

이 경우에는 외부에 필요한 속성을 노출하고 코드의 컨트롤에 값을 설정하는 기능을 구현하십시오. 객체를 직접 노출하지 마십시오. – Kangkan

+0

설정은 다른 클래스의 동일한 어셈블리의 동일한 속성입니다. 따라서 다른 프로젝트에서 액세스 할 수 있도록 액세스 수정 자도 public으로 설정해야합니다. (또는 아마도 나는 당신의 대답을 이해하지 못했습니까?) 미안하지만 – 0x49D1

0

아니요. 다른 프로젝트에서 일부 속성을 변경하려면 반드시 공개이어야합니다 (SAME 어셈블리의 속성에 대한 액세스 권한을 부여하려면 "내부"사용).

2

usercontrol 또는 check_ID 개체에 속성을 추가해야합니다. 그런 다음 속성 내부에서 자식 컨트롤 속성을 설정하거나 가져올 수 있습니다. 당신은 당신이 보호를 조작 할 수 있습니다 각 자식 컨트롤에 대해 수정 속성을 설정해야합니다 기본 컨트롤의 속성 시트에서

public override Color ForeColor 
    { 
     get 
     { 
      return base.ForeColor; 
     } 
     set 
     { 
      base.ForeColor = value; 

      //Set child controls here: 
      textbox.ForeColor = value; 
     } 
    } 
0

. 그런 다음 파생 된 컨트롤에서이를 변경할 수 있어야합니다.

특정 기능에 대한 래퍼 메소드/속성을 제공 할 수도 있습니다. 그러나 시각적 디자이너/속성 시트를 통해 컨트롤을 조작하는 것이 더 직관적 인 경험입니다.