如何在列表框中获取所选值?

时间:2011-02-27 15:00:47

标签: c# .net winforms listbox

我有一个Winforms应用程序,它有一个可以选择的值列表框。我希望选定的值在编辑表单上显示为选中状态。这是加载代码:

ListBox加载代码

private void LoadListBox()
{
    DataTable dt = new DataTable();
    string[] names = new string[] { "UID1", "UID2", "UID3","UID4" };
    dt.Columns.Add("Units", typeof(string));
    dt.Columns.Add("Value", typeof(int));
    int count = 1;
    foreach (string value in names)
    {
        DataRow drRow = dt.NewRow();
        drRow["Units"] = value;
        drRow["Value"] = count;
        count++;
        dt.Rows.Add(drRow);
    }
    listBox1.DisplayMember = "Units";
    listBox1.ValueMember = "Value";
    listBox1.DataSource = dt;
}

如果他们选择UID1UID2,则会将其12存储在数据库中。

如果用户点击了修改按钮,则UID1UID2应为所选值,但应加载所有值。

当点击edit按钮时,如何确保所选内容显示为已选择?

3 个答案:

答案 0 :(得分:2)

枚举每个列表框项目,并根据您的规则将其设置为选中状态:

for (int index = 0; index < listBox1.Items.Count; index++ )
{
   Object o = (int)listBox1.Items[index];
   if ( /* criteria you want here */ )
   {
       listBox1.SetSelected(index, true);

}

}

答案 1 :(得分:0)

在回发期间保留选定的值,除非您在回发事件中设置数据源,因此“覆盖”它。

所以在你的代码中只需要这样的if语句:

if (!Page.IsPostBack)
   LoadListBox();

<击>

抱歉,以为是ASP.NET - 与WinForms环境无关。其他答案已经满足您的需求。 :)

答案 2 :(得分:0)

尝试SelectedItems.Add功能。 您可以将所需的每个项目添加到当前选择中。