【问题标题】:give copied items in listbox an ID给列表框中复制的项目一个 ID
【发布时间】:2011-04-05 06:53:55
【问题描述】:

现在写我可以在 2 个列表框之间复制项目。问题是,当我将相同的项目从 listbox1 复制到 listbox2 时没有问题,但是当我删除 listbox 2 中的最后一个项目时,它会 删除最后一项之前的所有其他项,因为它是同一个对象。所以我需要提供我复制的项目和 ID,所以当我将一个项目复制到 listbox2 时,它与将复制到 listbox2 的下一个项目不同..

private void CopyItemOver_Click(object sender, EventArgs e)
        {

            foreach (ElementControl item in ElementListBox.SelectedItems)
            {
                if (item == null)
                    return;
                else
                {
                    SequenceListBox.ValueMember = item.ID.ToString();
                    item.ID++;
                    SequenceListBox.Items.Add(item);
                    elementNumber++;

                }
                SequenceListBox.SelectedIndex = SequenceListBox.Items.Count - 1;
                SequenceListBox.SelectedIndex = -1;
                Update();

            }
            if (ElementListBox.SelectedItems.Count <= 0)
            {
                return;
            }
            else
            {
                var objElement = SequenceListBox.Items[itemCounter] as ElementControl;
                if (SequenceListBox.Items.Count == 1)
                {
                    ListViewItem item = new ListViewItem(new[] { ElementListBox.SelectedItems.Count.ToString() + "  Elements moved to SequenceListBox", "Ready", GetTime() + "  " + elementNumber});
                    LogListView.Items.Add(item);
                }
                else
                {
                    ListViewItem item1 = new ListViewItem(new[] { ElementListBox.SelectedItems.Count.ToString() + "  Elements moved to SequenceListBox", "Ready", GetTime() + "  " + elementNumber });
                    LogListView.Items.Add(item1);
                }
            }
            LogListView.Items[LogListView.Items.Count - 1].EnsureVisible();
        }

希望能把我的问题说清楚。

DuMaSexy。

【问题讨论】:

    标签: c# winforms listbox


    【解决方案1】:

    代替:

    SequenceListBox.Items.Add(item);
    

    使用:

    SequenceListBox.Items.Add(new ListItem() { Text = item.Text, Value = item.Value);
    

    【讨论】:

    • 错误 1 ​​'System.Windows.Forms.ListViewItem' 不包含 'Value' 的定义
    • 你确定是 ListItem 而不是 ListViewItem?
    • 我没有这个 ListItem 功能。我正在使用 .NET 3.5
    • 我也在使用 .Net 3.5,而我的 ListBox 控件有一个 ListItemCollectionAdd 公开的方法:void ListItemCollection(ListItem item)。继承自System.Web.UI.WebControls.ListControlpublic virtual ListItemCollection Items { get; }。为什么你的ListBox 使用ListViewItem,你有没有机会使用ListView 而不是ListBox
    • 我正在以 Windows 形式工作。也许这就是为什么我没有那个?无法添加参考 System.Web.UI.WebControls.ListControl
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多