是这样滴,我在一个用户控件中有一个Panel , 一个窗体上有2个这个用户控件,
有一个按钮,是将这两个用户控件的Panel 交换。 代码是这样的:用户控件的代码:
public Panel Pl
{
get { return pl; }//这个pl 就是用户控件中的Panel 的名称。
set { pl = value; }
}切换的代码是这样的:
Panel pl=plControl1.Pl; //plControl1,plControl2 就是用户控件在窗体上的名称,
plControl1.Pl=plControl2.Pl;
plControl2.Pl=pl;但是这样交换后明显是引用了,而不是真的切换了, 因为这样切换后,获取plControl1的PL 还是最先的PL ,而不是切换之后的PL。 现在该怎么办? 我说的应该不难理解吧...
有一个按钮,是将这两个用户控件的Panel 交换。 代码是这样的:用户控件的代码:
public Panel Pl
{
get { return pl; }//这个pl 就是用户控件中的Panel 的名称。
set { pl = value; }
}切换的代码是这样的:
Panel pl=plControl1.Pl; //plControl1,plControl2 就是用户控件在窗体上的名称,
plControl1.Pl=plControl2.Pl;
plControl2.Pl=pl;但是这样交换后明显是引用了,而不是真的切换了, 因为这样切换后,获取plControl1的PL 还是最先的PL ,而不是切换之后的PL。 现在该怎么办? 我说的应该不难理解吧...
我记得序列化并不能讲private和protected修饰的成员变量保存下来,如果按照用序列化和反序列化实现深拷贝,不是会有问题吗?
plControl1.Pl=plControl2.Pl;
plControl2.Pl=pl;
这个必须是引用。 引用类型啊 大哥
方法参照楼上两星星大神。
首先你这个panel涉及到包含与被包含关系
试试
p1.parent=plControl2;
p2.parent=plControl1;
首先你这个panel涉及到包含与被包含关系
试试
p1.parent=plControl2;
p2.parent=plControl1;