내 프로젝트에는 화면에 포인트 세트를 표시하는 여러 컨트롤이 있습니다. 이러한 모든 컨트롤에 대해 "올가미 선택"기능을 제공하고 싶습니다. 이렇게하려면 마우스 움직임을 추적하고, 올가미를 표시하고, 올가미가 닫힐 때 이벤트를 올리는 등의 "올가미"라는 클래스를 작성했습니다. 지금까지 그렇게 좋았습니다. 그러나, 올가미를 사용하기 위해, 나는 다음과 같은 코드를 작성해야합니다 :구성 요소를 통해 컨트롤에 사용자 정의 UI 비헤이비어 추가하기
public partial class MyControl : UserControl {
private Lasso lasso;
public MyControl() {
InitializeComponent();
lasso = new Lasso();
lasso.HookEvents(this);
}
}
은 "lasso.HookEvents"방법은 호스트 컨트롤의 마우스 이벤트에 올가미를 접선을 담당한다.
내가하고 싶은 것은 어떻게 든 사람들이 디자인 타임에 도구 상자에서 "올가미"구성 요소를 자신의 UserControl 또는 Form으로 끌어와 코드 자체를 작성하는 것에 대해 걱정할 필요가 없다는 것입니다. 올가미는 마술처럼 "그냥 일해야"합니다. 그렇게 할 수있는 방법이 있습니까? Component에서 Lasso 클래스를 확장하려고했지만 Designer에 "lasso.HookEvents (this)"호출을 자동으로 생성하는 방법을 알 수 없습니다.
불행히도 Lasso 클래스는 Control이 아닌 Component를 확장합니다. 따라서 "로드 됨"이벤트가 없습니다. 올가미가 자체 UI를 가지고 있지 않기 때문에 컨트롤을 확장하고 싶지 않습니다. 부모를위한 UI 동작 만 제공합니다. – Bugmaster