簡體   English   中英

克隆一個DataBound檢查列表框

[英]Clone a DataBound Checked List Box

我有一個DataBound CheckedListBox,我“檢查”了列表框(源)上的一些項目,然后我需要將其克隆到新的Checked List Box(目標)上。 它需要具有檢查狀態的所有數據。 我嘗試了以下功能。 它正正確地通過此功能流動。

但是最后我可以在目標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;
    }

您可以在此處看到正確的答案。

以編程方式檢查DataBound CheckListBox

嘗試設置

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM