【问题标题】:Move list box items from one listbox to another listbox?将列表框项目从一个列表框移动到另一个列表框?
【发布时间】:2011-09-27 20:18:53
【问题描述】:

我正在尝试在两个列表框之间移动列表框项目。在此之前,我为每个列表框创建了两个数组列表。因此,在移动列表框项目之前,我尝试将这些项目添加到数组列表中。这是代码

 foreach (string st in listbox1.Items)
            {
                arraylist1.Add(st1);
            }

但我遇到了一个异常,无法将“System.Web.UI.WebControls.ListItem”类型的对象转换为“System.String”类型。

【问题讨论】:

    标签: c# asp.net


    【解决方案1】:

    您收到此错误是因为 listbox1.Items 是 ListItemCollection。

    foreach (ListItem li in listbox1.Items)
    {
        arraylist1.Add(li.Text);
    }
    

    【讨论】:

      【解决方案2】:

      foreach (string st in listbox1.Items) 应该是

       foreach (ListItem st in listbox1.Items) 
                 // your code
      

      【讨论】:

        【解决方案3】:

        尝试使用

        foreach (ListItem li in listbox1.Items) 
        {     
             arraylist1.Add(li.Text); 
        }
        

        【讨论】:

          【解决方案4】:

          ListBox.Items 属于 ListItemCollection 类型。它由 ListItem 对象组成,而不是字符串。

          你想要做的是:

                  foreach (ListItem lstItem in ListBox1.Items)
                  {
                      arraylist1.Add(lstItem);
                  } 
          

          【讨论】:

          • 我实际上不认为那是 OP 想要做的。
          • @JamesJohnson 你说得对,我已经编辑了帖子,谢谢!然而,尚不清楚 OP 是否具有 ListItems 或 Texts 的数组列表。如果是文本,那么你的答案是正确的,否则是我的。
          【解决方案5】:

          这是因为列表项本身就是一个对象,而不是字符串对象。因此,在上面的代码中将字符串更改为 ListItem,它应该可以正常工作。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2018-11-28
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多