【问题标题】:copying from one list box to other listbox从一个列表框复制到另一个列表框
【发布时间】:2012-07-13 08:21:36
【问题描述】:

我正在使用 c# 处理 Windows 窗体应用程序。我有两个列表框,即 listbox1 和 listbox2 以及一个按钮,即 btnall。 listbox1 是使用数据绑定绑定的,而 listbox2 是空的。我想从绑定到其他空的 listbox2 的 listbox1 中复制所有项目。点击 btnAll_click 事件。 我正在尝试这个

private void btnAll_Click(object sender, EventArgs e)
{
    listbox2.Items.AddRange(listbox1.Items);
}

但我得到的是 data.datarowview 而不是值。

【问题讨论】:

    标签: c# winforms listbox


    【解决方案1】:

    您可以循环遍历 LIstbox1 中的项目并一次添加一个,如下所示:

     foreach (var item in Listbox1.Items)
     {
         listbox2.Items.Add(item.ToString());
     }
    

    这能满足你的要求吗?

    【讨论】:

    • 无法将属性或索引器“System.Windows.Forms.ListBox.Items”分配给 -- 它是只读的。我在尝试 this.listbox2.items=listbox1.items 时遇到此错误
    • 在尝试这个之后我得到了 system.data.datarowview
    • @siddharth 好吧,我想你可能需要 item.something 而不是 item。等我试试
    • 你需要添加 .ToString() 我已经测试过这段代码并且它可以工作。
    • 在代码隐藏中手动绑定并应用此代码后,谢谢
    【解决方案2】:

    试试这个

    listbox2.DataSource = listbox1.Items;
    

    【讨论】:

    • 我得到了同样的东西 system.data.datarowview.not the value
    【解决方案3】:

    如果您通过DataSource 属性填充列表控件,请尝试设置DataSourceDataMember。不要忘记:

    listBox.DisplayMember = "displayMember";
    listBox.ValueMember = "valueMember";
    

    试试这个:

    var mylistSource = new List<string>();
    foreach (var item in Listbox1.Items)
    {
        mylistSource.Add(item.ToString());
    }
    
    listBox2.DataSource = mylistSource;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-22
      • 1970-01-01
      • 1970-01-01
      • 2012-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多