2011-01-04 2 views
1

У меня есть DataBound CheckedListBox, я «проверяю» несколько элементов в окне списка (источник), затем мне нужно клонировать его в новый флажок с проверенным списком (цель). Он должен иметь все данные с проверенным состоянием. Я пробовал со следующей функцией. Он правильно протекает через эту функцию.Clone a DataBound Checked List Box

Но, наконец, я могу видеть объекты в целевом контроле CheckedListBox, но ни один из объектов в мишени не проверен.

private void CloneCheckedListBox(CheckedListBox source, CheckedListBox target) 
    {    
     foreach (int checkedItemIndex in source.CheckedIndices) 
     { 
      target.SetItemChecked(checkedItemIndex, true); 
     } 
    } 

Edit:

У меня есть пользовательский элемент управления, который я поставил на TabPage, на Пользовательском Control есть «CheckedListBox», мне нужно создать новый TabPage с введенной пользователем значения на выбранном (текущем) TabPage (on User Control)

Итак, что я сделал, создайте новую страницу вкладок, получите копию пользовательского элемента управления, назвав ее методом «Clone()».

В методе клонирования() необходимо иметь функцию клонирования CheckedListBox.

Вот мой Клонирование код, который находится на контроле пользователя ...

public SearchMain Clone() 
    { 
     SearchMain smClone = new SearchMain(); 
     smClone.txtManufacturers.Text = this.txtManufacturers.Text; 
     smClone.udPriceFrom.Value = this.udPriceFrom.Value; 
     smClone.udPriceTo.Value = this.udPriceTo.Value; 
     smClone.chkOld.Checked = this.chkOld.Checked; 
     smClone.chkPrx.Checked = this.chkPrx.Checked; 
     smClone.chkDisc.Checked = this.chkDisc.Checked; 
     smClone.chkStock.Checked = this.chkStock.Checked; 
     smClone.chkFirstDes.Checked = this.chkFirstDes.Checked; 
     smClone.chkFirstPN.Checked = this.chkFirstPN.Checked; 
     smClone.txtSuppPN.Text = this.txtSuppPN.Text; 
     smClone.txtManuPN.Text = this.txtManuPN.Text; 
     smClone.txtManufacturers.Text = this.txtManufacturers.Text; 
     smClone.meDesAND.Text = this.meDesAND.Text; 
     smClone.meDesOR.Text = this.meDesOR.Text; 
     smClone.meDesNOT.Text = this.meDesNOT.Text; 
     smClone.lbManufacSelected.Items.AddRange(this.lbManufacSelected.Items); 
     smClone.lbSearchWithIn.Items.AddRange(this.lbSearchWithIn.Items); 
     **CloneCheckedListBox(this.clbLang, smClone.clbLang);** 
     // CloneCheckedListBox(this.clbTypes, smClone.clbTypes); 
     return smClone; 
    } 
+1

Так скажите нам, что вы пробовали. Операция довольно тривиальная. – leppie

+0

Где вы копируете фактические предметы от одного к другому? – leppie

+0

Покажите нам еще один код, поэтому мы знаем, что вы хотите делать – Kimtho6

ответ

0

попробуйте установить

source.DataSource = target.DataSource; 
target.DisplayMember = "YourDisplayItem"; 
target.ValueMember = "YourValueItem"; 
foreach (int checkedItemIndex in source.CheckedIndices) 
{ 
    target.SetItemChecked(checkedItemIndex, true); 
} 
+0

Как я объяснил в своем вопросе, я получаю значения, но они не проверяются, как в "исходном" –

 Смежные вопросы

  • Нет связанных вопросов^_^