Имам DataBound CheckedListBox, „проверявам“ няколко елемента в списъчното поле (източник), след което трябва да го клонирам в ново отметнато списъчно поле (цел). Трябва да има всички данни с отметнато състояние. Опитах със следната функция. Той правилно протича през тази функция.
Но най-накрая мога да видя елементи в целевия CheckedListBox, но нито един от елементите в целевия не е отметнат.
private void CloneCheckedListBox(CheckedListBox source, CheckedListBox target)
{
foreach (int checkedItemIndex in source.CheckedIndices)
{
target.SetItemChecked(checkedItemIndex, true);
}
}
Редактиране:
Имам потребителска контрола, която поставих на TabPage, в тази потребителска контрола има „CheckedListBox“, трябва да създам нова TabPage с въведената от потребителя стойност на избраната (текуща) TabPage (на потребителската контрола)
И така, това, което направих, е да създам нова страница с раздели, да получа копие на потребителския контрол, наричайки това метод "Clone()".
В метода "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;
}