내 프로그램 클래스를 복제 할 수는 있습니다윈폼 - 포인트 형태
를 Form1 클래스Application.Run(new Form1());
내가 가진 : 모델 클래스에서
model = new Model(this);
private void userEnteredText()
{
Model clonedModel = (Model)model.Clone();
this.myButton.Size = new System.Drawing.Size(10,5);
MessageBox.Show("buttons made small");
this = clonedModel;
MessageBox.Show("clone complete and buttons restored to orig size");
}
내가 가진 :
public Model(Form1 form1)
{
myform = form1;
}
public object Clone()
{
return new Model(myform);
}
내 초기 Form1을 객체는 버튼의 크기가 실제로 큽니다. 사용자가 텍스트 상자에 값을 입력 한 후 : 모델 객체를 복제하고 버튼을 아주 작게 만드는 메소드를 호출합니다. 그런 다음 큰 버튼을 사용하여 원래 모델 객체를 가리 키도록 모델 객체를 어떻게 설정할 수 있습니까? 난 그냥 버튼의 크기를 변경할 수 있습니다 알고
을 는 "이 읽기 전용이기 때문에 할당 할 수 없습니다"하지만 난 다른 원본이 있기 때문에 전체 개체를 복제해야합니다
는이 오류를 받고 있어요 변수를 재설정하고 싶습니다.
clonedModel을 지정한 후에는 사용하지 않는 것이 오타입니다. – toop
모델과 폼을 복제하여 복원 할 때 원래 폼 단추의 크기 (예 : 사용자 작업 이전)를 표시 할 수있게하려고합니다. – toop
@toop : 문제는 Form의 복제본이 아닌 복제 메소드에 있습니다. 그래서 당신은 복제하지만 모델은 여전히 동일합니다. 바이너리 직렬화를 사용하여이 목적으로 딥 카피 (Deep Copy)를 사용할 것을 제안한다. – sll