c#copy object(CheckedListBox)不能引用

时间:2011-01-07 07:17:43

标签: c# reference copy checkedlistbox

我在C#(ver 4.0)

中处理Windows窗体应用程序

我想复制CheckedListBox,但不是作为参考。我希望CheckedListBox中的每个更改都不应该影响我的对象,只需分配一次,然后不引用。

以下是我的代码:

public struct SmartFilter
{
    public int from, to;
    public CheckedListBox cmb;            

}
var temp = new SmartFilter();
    temp.from = Convert.ToInt32(cbNumber2From.SelectedItem);
    temp.to = Convert.ToInt32(cbNumber2To.SelectedItem);

    temp.cmb = cbNumbers2;

当我到达最后一行

temp.cmb = cbNumbers2;

我想在temp.cmb(CheckedListBox)中保存副本,但之后窗口中的每个更改都会影响我的对象。

1 个答案:

答案 0 :(得分:3)

基本上你不能 - CheckedListBox不可克隆。

您希望它如何运作?这是一个屏幕控制...你希望克隆没有父窗口,而不是在屏幕上?你感兴趣的CheckedListBox有多少状态?也许你应该只复制那个方面而不是整个CheckedListBox

作为旁注,可变结构几乎总是一个坏主意,公共领域也是如此。