c # копировать объект (CheckedListBox) не ссылка - PullRequest
1 голос
/ 07 января 2011

Я работаю над приложением Windows Form в C # (версия 4.0)

Я хочу скопировать 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 Ответ

3 голосов
/ 07 января 2011

Вы не можете, в основном - CheckedListBox не клонируется.

Как вы ожидаете, что он будет работать?Это экранное управление ... Вы ожидаете, что у клона просто не будет родительского окна, и он не будет отображаться на экране?Насколько вас интересует состояние CheckedListBox?Может быть, вам следует копировать только этот аспект вместо целого CheckedListBox.

Как примечание, изменяемые структуры почти всегда плохая идея, как и открытые поля.

...