【问题标题】:Working with listbox in winforms (c#)在winforms中使用列表框(c#)
【发布时间】:2009-10-26 08:38:41
【问题描述】:

如何将 10 个项目动态添加到列表框到列表框,然后我想在列表框的单击事件中显示所选项目的值。

我试过这样

for(int i=1;i<10 ;i++)
{
mylistbox.Items.Add(i.ToString());
}

在点击事件处理程序中

MessageBox.Show(mylistbox.SelectedValue.ToString());

显示错误。

这是怎么回事?

【问题讨论】:

  • 显示什么错误?这在尝试解决这类问题时非常有用……在执行 MessageBox.Show 之前,首先检查是否存在 SelectedValue(它不为空)。
  • 显示什么错误?
  • 是的,它显示空引用异常。什么原因?

标签: c# winforms listbox


【解决方案1】:

尝试改用SelectedItem 属性。

SelectedValue 仅在您用对象填充 ListBox 并分配了 ValueMember 时才有效。 这是一个最小的例子:

var mylistbox = new ListBox {Dock = DockStyle.Fill};
mylistbox.Click += (sender, e) =>
                   MessageBox.Show(mylistbox.SelectedItem.ToString());
for (int i = 1; i < 10; i++)
{
    mylistbox.Items.Add(i.ToString());
}
new Form {Controls = {mylistbox}}.ShowDialog();

【讨论】:

    【解决方案2】:

    在点击处理程序上使用以下代码

    MessageBox.Show(mylistbox.Text.ToString()); //这将根据您的要求显示所选项目。

    .SelectedValue 替换为.Text

    【讨论】:

      【解决方案3】:

      Dmitriy 完全有。

      在调试时检查正在发生的情况的一个好方法是突出显示“mylistbox.SelectedValue”并右键单击,然后选择“添加监视”。然后,您可以在 Watch 窗口中跟踪该属性的值。

      您可以对任何变量执行此操作,并且任何时候它显示为 null 并且您尝试使用该值,您知道它会引发 Null 引用异常。

      它也适用于在您尝试转换为整数的字符串中拾取字母,以及其他类似的“d'oh!”时刻。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-02
        • 1970-01-01
        • 2011-07-25
        • 1970-01-01
        相关资源
        最近更新 更多