Vb.net 如何使用所有打开表单的列表填充listbox

Vb.net 如何使用所有打开表单的列表填充listbox,vb.net,listbox,Vb.net,Listbox,我有一个带有列表框的表单,我希望能够用同一应用程序的所有打开的表单填充它。但是,我希望能够从列表框中选择一个项目,并能够关闭列表框中与该项目关联的表单。这可能吗?是项目中打开的表单的集合。比如: For Each f As Form In My.Application.OpenForms Me.SomeListBox.Items.Add(f) Next 然后,要关闭所选项目,则 DirectCast(Me.SomeListBox.SelectedItem, Form).Close()

我有一个带有列表框的表单,我希望能够用同一应用程序的所有打开的表单填充它。但是,我希望能够从列表框中选择一个项目,并能够关闭列表框中与该项目关联的表单。这可能吗?

是项目中打开的表单的集合。比如:

For Each f As Form In My.Application.OpenForms
    Me.SomeListBox.Items.Add(f)
Next
然后,要关闭所选项目,则

DirectCast(Me.SomeListBox.SelectedItem, Form).Close()
是项目中打开的表单的集合。比如:

For Each f As Form In My.Application.OpenForms
    Me.SomeListBox.Items.Add(f)
Next
然后,要关闭所选项目,则

DirectCast(Me.SomeListBox.SelectedItem, Form).Close()

我找到了这个问题的答案。以下代码起作用:

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
  Dim myForms As FormCollection = Application.OpenForms

  For Each frmName As Form In myForms
    ListBox1.Items.Add(frmName.Name.ToString)
  Next
End Sub

Private Sub ListBox1_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
  If Not ListBox1.SelectedIndex = -1 Then
    Dim myForm As Form = Application.OpenForms(ListBox1.Text)
    myForm.Close()
  End If
End Sub

列表框1\u SelectedIndexChanged
下的代码可以很容易地放在按钮中。

我找到了问题的答案。以下代码起作用:

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
  Dim myForms As FormCollection = Application.OpenForms

  For Each frmName As Form In myForms
    ListBox1.Items.Add(frmName.Name.ToString)
  Next
End Sub

Private Sub ListBox1_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
  If Not ListBox1.SelectedIndex = -1 Then
    Dim myForm As Form = Application.OpenForms(ListBox1.Text)
    myForm.Close()
  End If
End Sub

在这里,您可以很容易地将
列表框1\u SelectedIndexChanged
下的代码放在按钮中。

只是一个建议@minitech;您无法将表单添加到列表框:)您可能希望将其更改为:Me.SomeListBox.Items.add(f.name)@MrCoDeXeR:然后关闭的东西将断开!我不知道表单的字符串表示形式在
列表框中是什么,但它会以某种方式显示出来。:)<代码>添加
获取对象。(我目前没有Visual Studio,不过…)我测试了这个方法,列表框显示为空白项,但项在其中,如果关闭其中一个项,整个程序将关闭。@TheRyan722,这是因为您需要添加表单buddy的名称;而不仅仅是…添加(f)将其更改为:(f.Name)@TheRyan722:将项目设置更改为在初始表单关闭时不关闭。我的项目>应用,我相信。只是一个建议@minitech;您无法将表单添加到列表框:)您可能希望将其更改为:Me.SomeListBox.Items.add(f.name)@MrCoDeXeR:然后关闭的东西将断开!我不知道表单的字符串表示形式在
列表框中是什么,但它会以某种方式显示出来。:)<代码>添加
获取对象。(我目前没有Visual Studio,不过…)我测试了这个方法,列表框显示为空白项,但项在其中,如果关闭其中一个项,整个程序将关闭。@TheRyan722,这是因为您需要添加表单buddy的名称;而不仅仅是…添加(f)将其更改为:(f.Name)@TheRyan722:将项目设置更改为在初始表单关闭时不关闭。我相信我的项目>申请。