1
Form
(또는 파생물)의 부모 만 가질 수있는 컨트롤을 작성하고 싶습니다..NET의 Windows Forms에서 컨트롤의 부모를 특정 형식으로 제한
나는 당신이 TabControl
아닌 부모가 할 수없는 TabControl
, 또는 TabPage
하는 TabControl
유형 TabPage
의없는 아이를 가질 수 없으며, TabPage
에이 동작을 비유 할 수 같아요.
그러나 TabControl
과 달리 내 Form
은 모든 유형의 컨트롤을 허용하지만 내 컨트롤은 부모 유형이 Form
여야합니다. 여기
- 디자이너에서 양식을로드하려고 예외가 발생합니다 :이
public class CustomControl : ContainerControl { protected override void OnParentChanged(EventArgs e) { base.OnParentChanged(e); if (!(this.Parent is Form)) { this.Parent.Controls.Remove(this); throw new ArgumentException("CustomControl can only be a child of Form"); } } }
이 같은 폼 디자이너에서 일부 바람직하지 않은 효과가 발생합니다.
- 폼에서 컨트롤을 제거 할 때 예외가 발생합니다.
- 컨트롤의 크기가 제대로 조정되지 않습니다.
이 문제를 해결하는 방법이나 내가 잘못하고있는 부분에 대한 권장 사항을 알려 주시면 감사하겠습니다.
이 제한 사항을 구현하는 데있어 어떤 가치가 있습니까? –
@RyanGates, 컨트롤은 폼의 동작을 변경하며 폼이 아닌 컨트롤에는 적용되지 않습니다. 또한 동작 변경은 Form 수준에서 구현되어서는 안되며 별도의 컨트롤이어야합니다. – series0ne