1

我在 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) 中保存一个副本,但之后窗口中的每次更改都会影响我的对象。

4

1 回答 1

3

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

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

As a side-note, mutable structs are almost always a bad idea, as are public fields.

于 2011-01-07T07:22:21.173 回答