C# 如何从列表框上的对象中选择值?

C# 如何从列表框上的对象中选择值?,c#,winforms,object,listbox,C#,Winforms,Object,Listbox,private void btnOpen\u单击(对象发送方,事件参数e) { string[]Folders=Directory.GetDirectories(txtFolder.Text); foreach(文件夹中的字符串f) { ListItem n=新的ListItem(); n、 值=f; n、 Key=Path.GetFileName(f); listBoxSidra.Items.Add(n); } } 私有无效列表框Sidra\u SelectedIndexChanged\u

private void btnOpen\u单击(对象发送方,事件参数e)
{
string[]Folders=Directory.GetDirectories(txtFolder.Text);
foreach(文件夹中的字符串f)
{ 
ListItem n=新的ListItem();
n、 值=f;
n、 Key=Path.GetFileName(f);
listBoxSidra.Items.Add(n);
}
}
私有无效列表框Sidra\u SelectedIndexChanged\u 1(对象发送方,事件参数e)
{
尝试
{
lblmsg.Text=null;
comboBoxSeason.Items.Clear();
字符串[]seasures=Directory.GetDirectories(listBoxSidra.SelectedValue.ToString());
for(int i=0;i
第一个方法:我打开名为它的类
ListItem
,它包含foldername(键)和文件夹位置(值)。 Secound方法:我创建了一个数组,其中包含我在文本框中设置的目录中的所有子目录。 我还创建了名为“n”的
ListItem
对象,然后将值设置为“n”、n.Value(表示目录位置)和n.Key(表示目录名)。 下一步是将“n”对象添加到列表框中,现在在列表框中我可以看到目录名,每个对象都包含其位置

第三种方法:这就是我坚持的地方,我创建了一个数组,该数组支持包含所选列表框项的子目录,我的意思是,当我单击列表框项时,我想得到他的值(值表示位置),然后将子目录添加到数组中,我应该写什么来代替listBoxSidra.SelectedValue.ToString()


谢谢

为了使代码正常工作,请进行以下更改

private void btnOpen_Click(object sender, EventArgs e)
{
    string[] Folders = Directory.GetDirectories(txtFolder.Text);

    foreach (string f in Folders)
    { 
        ListItem n = new ListItem();
        n.Value = f;
        n.Key = Path.GetFileName(f);  
        listBoxSidra.Items.Add(n);
    }
}

private void listBoxSidra_SelectedIndexChanged_1(object sender, EventArgs e)
{
    try
    {
        lblmsg.Text = null;
        comboBoxSeason.Items.Clear();
        string[] seasons = Directory.GetDirectories(listBoxSidra.SelectedValue.ToString());
        for (int i = 0; i < seasons.Length; i++)
        {
            comboBoxSeason.Items.Add(seasons[i]);
        }
        comboBoxSeason.SelectedIndex = 0;
    }
    catch (Exception ex)
    {
        lblmsg.Text = ex.Message;
    }
}
private void btnOpen\u单击(对象发送方,事件参数e)
{
string[]Folders=Directory.GetDirectories(txtFolder.Text);
var dataSource=新列表();
foreach(文件夹中的字符串f)
{
ListItem n=新的ListItem();
n、 值=f;
n、 Key=Path.GetFileName(f);
dataSource.Add(n);
}
listBoxSidra.DataSource=数据源;
listBoxSidra.DisplayMember=“key”;
listBoxSidra.ValueMember=“value”;
}

@liavbahar别忘了标记一个对你有帮助的答案;-]
private void btnOpen_Click(object sender, EventArgs e)
{
    string[] Folders = Directory.GetDirectories(txtFolder.Text);

    foreach (string f in Folders)
    { 
        ListItem n = new ListItem();
        n.Value = f;
        n.Key = Path.GetFileName(f);  
        listBoxSidra.Items.Add(n);
    }
}

private void listBoxSidra_SelectedIndexChanged_1(object sender, EventArgs e)
{
    try
    {
        lblmsg.Text = null;
        comboBoxSeason.Items.Clear();
        string[] seasons = Directory.GetDirectories(listBoxSidra.SelectedValue.ToString());
        for (int i = 0; i < seasons.Length; i++)
        {
            comboBoxSeason.Items.Add(seasons[i]);
        }
        comboBoxSeason.SelectedIndex = 0;
    }
    catch (Exception ex)
    {
        lblmsg.Text = ex.Message;
    }
}
    private void btnOpen_Click(object sender, EventArgs e)
    {
        string[] Folders = Directory.GetDirectories(txtFolder.Text);


        var dataSource = new List<ListItem>();
        foreach (string f in Folders)
        {
            ListItem n = new ListItem();
            n.Value = f;
            n.Key = Path.GetFileName(f);
            dataSource.Add(n);
        }

        listBoxSidra.DataSource = dataSource;
        listBoxSidra.DisplayMember = "key";
        listBoxSidra.ValueMember = "value";
    }