0
我的程序類有:的WinForms - 點的形式克隆
Application.Run(new Form1());
在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");
}
模型I類有:
public Model(Form1 form1)
{
myform = form1;
}
public object Clone()
{
return new Model(myform);
}
我最初的Form1中對象的大小非常大。用戶在文本框中輸入值之後:我克隆模型對象並調用一個使按鈕非常小的方法。然後,我怎樣才能將模型對象設置爲使用大按鈕指向原始模型對象?
我得到這個錯誤:
我知道我可以只改變按鈕的大小「因爲它是隻讀的,不能分配給該」但我需要克隆整個對象,因爲還有其他的原我想要重置的變量。
你分配clonedModel後它不使用,是一個錯字? – toop
我希望能夠克隆模型和窗體,以便在恢復時它將顯示原始窗體按鈕的大小(即在用戶操作之前)。 – toop
@toop:所以問題是在克隆方法,而不是克隆的形式。所以你克隆模型,但形式仍然相同。我建議使用深度複製爲此目的使用二進制序列化 – sll