8
일반적으로 양식에 컨트롤이 추가되고 있습니다. 하지만 컨테이너 사용자 컨트롤에 Form 인스턴스를 추가하는 것과 반대되는 작업을 수행해야합니다.UserControl에 폼 추가 - 이것이 가능합니까?
이유는 제 자신의 응용 프로그램을 타사 응용 프로그램에 포함시켜야하기 때문입니다. 복잡성으로 인해 양식을 사용자 정의 컨트롤로 변환 할 수 없습니다.
일반적으로 양식에 컨트롤이 추가되고 있습니다. 하지만 컨테이너 사용자 컨트롤에 Form 인스턴스를 추가하는 것과 반대되는 작업을 수행해야합니다.UserControl에 폼 추가 - 이것이 가능합니까?
이유는 제 자신의 응용 프로그램을 타사 응용 프로그램에 포함시켜야하기 때문입니다. 복잡성으로 인해 양식을 사용자 정의 컨트롤로 변환 할 수 없습니다.
폼의 TopLevel 속성을 false로 설정하면이 작업을 수행 할 수 있습니다. UserControl과 거의 구분할 수없는 자식 창으로 바뀝니다. 다음은 필요한 코드가 포함 된 샘플 사용자 정의 컨트롤입니다.
public partial class UserControl1 : UserControl {
public UserControl1() {
InitializeComponent();
}
public void EmbedForm(Form frm) {
frm.TopLevel = false;
frm.FormBorderStyle = FormBorderStyle.None;
frm.Visible = true;
frm.Dock = DockStyle.Fill; // optional
this.Controls.Add(frm);
}
}
감사합니다. 임베디드 형식이 크기 조정에 반응하지 않고 고정 된 크기로 남아 있습니다. 이 문제를 어떻게 해결할 수 있습니까? – SharpAffair
음, 정상적인 임베디드 컨트롤은 일반적으로 사용자가 크기를 조정할 수 없습니다. 사용자 정의 컨트롤을 아래쪽 및 오른쪽으로 고정하여 폼의 크기와 함께 크기를 조정하여 프로세스에서 포함 된 폼의 크기를 변경합니다. –
포함 된 폼과 사용자 정의 컨트롤 모두 Dock을 채우기로 설정해야합니다. 컨트롤의 크기는 조정되지만 포함 된 양식에는 적용되지 않습니다. – SharpAffair