C# 如何从动态添加的列表框的选定项中获取值

C# 如何从动态添加的列表框的选定项中获取值,c#,winforms,C#,Winforms,我在winform的面板上动态添加了一个列表框。我想从所选项目中获取值,但我没有做到这一点。我很清楚为什么,但我不知道怎么做才对 这是我的密码: private void App1button_Click(object sender, EventArgs e) { ListBox ListBoxapp = new ListBox(); PanelLB.Controls.Add(ListBoxapp);

我在winform的面板上动态添加了一个列表框。我想从所选项目中获取值,但我没有做到这一点。我很清楚为什么,但我不知道怎么做才对

这是我的密码:

 private void App1button_Click(object sender, EventArgs e)
        {
            ListBox ListBoxapp = new ListBox();
            PanelLB.Controls.Add(ListBoxapp);
              string[] item = GetDesktopWindowsTitles(); 

            foreach (string app in item)
            {
                ListBoxapp.Items.Add(app);

            }
            ListBoxapp.BackColor = System.Drawing.SystemColors.InfoText;
            ListBoxapp.Size = new System.Drawing.Size(321, 135);
            ListBoxapp.Font = new System.Drawing.Font("Lucida Console", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));


              if (ListBoxapp.SelectedItem != null)
                {
                MessageBox.Show("App selected is" + ListBoxapp.SelectedItem.Tostring())
                }
}
所以这项工作很好,它添加到我的面板上,我可以选择一个项目,但什么也没有发生

我很确定这是因为我无法在ListBoxapp.Font**之后添加


它告诉我ListBoxapp\u SelectedIndexChanged不存在。但考虑到它是动态添加的,我不能优先处理。我不知道该如何添加它。谢谢。

定义事件、订阅事件并使用发件人访问列表框:

private void ListBoxapp_SelectedIndexChanged(object sender, EventArgs e)
{
     ListBox lBox = sender as ListBox;

     // do whatever you want
}
将此添加到您发布的代码中:

ListBoxapp.SelectedIndexChanged += ListBoxapp_SelectedIndexChanged;

你的类中是否定义了一个名为ListBoxapp\u SelectedIndexChanged的方法?哦,我不知道它是一个方法!检查下面的答案,何时显示mbox?当添加lbox时,当您在另一个事件中选择某个项目时?我希望mbox在选择某个项目后显示!问题不在于此,messagebox.show不显示up@jsls你没有订阅该事件,因此当你更改所选项目时它不会触发。我有一个小问题,我想使用不同的按钮添加相同的列表,但不执行相同的操作不同的文本框。我如何从app1button void调用selectedIndexChanged方法?@jsls这不清楚。请更新您的问题,并准确说明您想要什么和您拥有什么。示例:我有两个按钮,当我单击btn1时,我想创建列表框,当我单击btn2时,我想这样做,等等。并说明预期结果。对不起,我自己也不清楚,效果很好,谢谢!!
ListBoxapp.SelectedIndexChanged += ListBoxapp_SelectedIndexChanged;