私のプログラムのクラスのクローンを作成するには、持っている:リサイズ - ポイントフォーム
の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のクローンではないクローンメソッドに問題があります。あなたはモデルをクローンしますが、それでも同じ形をしています。バイナリのシリアライゼーションを使ってこの目的のためにディープコピーを使うことをお勧めします – sll