繁体   English   中英

如何从动态添加的ListBox的选定项目中获取价值

[英]How to get value from a ListBox 's selected item added dynamically

我在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.SelectedIndexChanged += new System.EventHandler(ListBoxapp_SelectedIndexChanged);

它告诉我ListBoxapp_SelectedIndexChanged不存在。 但是考虑到它是动态添加的,我无法通过“优先级”来实现。 我不知道如何添加它。 谢谢。

定义事件,订阅它并使用发送者访问ListBox:

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

     // do whatever you want
}

将此添加到您发布的代码:

ListBoxapp.SelectedIndexChanged += ListBoxapp_SelectedIndexChanged;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM