따라서 System.Windows.Forms.Control
의 유형은 Control.ControlCollection
인 Controls
입니다. 이 컬렉션에는 작은 하위 컨트롤이 포함 된 양식에 대한 컨트롤이 있습니다. 이러한 하위 컨트롤에는 데이터베이스의 필드 이름 인 레이블과 텍스트 식별자가 있습니다.System.Windows.Forms.Control.ControlCollection의 키에 사용되는 것은 무엇입니까?
Controls
컬렉션으로 돌아가 이름으로 컨트롤을 찾을 수 있어야합니다. ControlCollection
은 public virtual Control this[string key] { get; }
이고 public virtual bool ContainsKey(string key)
이므로보기 만하면됩니다.
그러나 추가 기능 (public virtual void Add(Control value)
)은 키 문자열을 사용하지 않고 추가하려는 System.Windows.Forms.Control
만 사용하고 ContainsKey
에 대한 모든 호출은 false를 반환합니다. Control
에 뭔가를내는
는, (단지 Control
통과하기 때문에), I (나는 조회에 사용할 꿔) 데이터베이스 필드 이름을 반환 ToString()
을 무시하려 열쇠가 될 오버라이드 (override)해야하지만, ContainsKey
여전히 지정된 필드에 대한 컨트롤이있는 것을 알 때 false를 반환합니다.
this[string key] { get; }
에 대한 설명서는 키 매개 변수가 "컨트롤 컬렉션에서 검색 할 컨트롤의 이름"이라고 말합니다. Control
에는 재정의 할 수있는 Name 속성이 없으며 유일한 Name 속성에는 추가 할 모든 컨트롤에 대해 동일한 클래스 이름이 포함되어 있습니다. ContainsKey(string key)
의 설명서에 따르면 키 매개 변수는 "찾을 수있는 키"로되어있어 덜 도움이됩니다.
질문에 답변 해 주셔서 감사합니다. 의도 한 말장난 없음! – TheBlastOne
질문에서 보는 것은 어떻게 내려 갔는지입니다. 처음 3 단락을 썼습니다. ToString에 대한 생각과 시도. 4 단락을 썼습니다. 내가 사용할 함수에 대한 문서를 확인했습니다. 단락 5를 썼습니다. Find docs를 넘어 섰습니다. 마지막 문단과 대답을 썼습니다. :) –
그물 결과 : 어리 석다는 이유로 "존경 포인트"가 많습니다. 그렇다면 전혀 그렇지 않습니다 :-) – TheBlastOne