我正在制作一个代码来上下移动列表框的元素。为此,我制作了两个按钮来向上移动元素(向上移动按钮)和向下移动(向下移动按钮)。这是我的代码:
if (m_lbOPFfiles.SelectedIndex != m_lbOPFfiles.Items.Count && m_lbOPFfiles.SelectedIndex != -1)
{
ListItem item = m_lbOPFfiles.SelectedItem;
int index = m_lbOPFfiles.SelectedIndex;
m_lbOPFfiles.Items.RemoveAt(index);
lstResdetails.Items.Insert(index + 1, item);
}
现在我收到了ListItem的命名空间错误。谁能帮我纠正呢?
答案 0 :(得分:4)
嗯,您还没有说过您正在编写什么类型的应用程序--Windows Forms? ASP.NET? WPF?假设它是ASP.NET,您需要:
using System.Web.UI.WebControls;
位于代码顶部。如果它是WPF你可能想要:
using System.Windows.Documents;
编辑:如果是Windows窗体,那么就没有ListItem
类。 ListBox.SelectedItem
返回object
,而不是ListItem
。 ListItem
类型的哪个方面要与ListBox
一起使用? (我假设您使用的是ListBox
。)您可以将项目添加到ListBox.Items
,就像对象一样。
答案 1 :(得分:1)
我怀疑你在.cs文件的顶部错过了相应的使用 -directive,这将是使用System.Web.UI.WebControls; 。您可能也错过了正确的程序集(虽然我对此表示怀疑),并且应该在项目中添加对System.Web程序集的引用。
答案 2 :(得分:1)
如果您使用的是Visual Studio,则只需将光标移动到标识符上,即可显示智能标记。按Ctrl +打开它。或者单击它并选择是否要添加using指令或使用完全限定名称。
另一方面,如果您使用的是Visual Studio,Intellisense会以自己的方式告诉您标识符当前不可用:)
答案 3 :(得分:0)
在Windows窗体中,如果使用ListBox.Items.Add(Object)添加对象,其中Object是您创建的对象,则ListBox将由对象的名称填充,而不是由文本填充。除非您添加ListBox.Items.Add(Object.Text),否则您将获得ListBox中的文本,但您将丢失对象中的其余信息。我们想要的是一种模拟ListItem类在ASP中实现的方法。
答案 4 :(得分:0)
您正在使用Windows窗体,这就是您无法访问控件名称空间中的ListItem类的原因,请执行以下操作:
- 添加“PresentationFrameWork”(.NET参考)作为您的解决方案的参考
- 将using System.Windows.Controls;
添加到您的班级文件