У меня есть форма со списком, и я хочу иметь возможность заполнить ее всеми открытыми формами одного и того же приложения. Однако я хочу иметь возможность выбрать элемент из списка и закрыть форму, связанную с этим элементом в списке. Возможно ли это сделать?
Как заполнить список списком всех открытых форм
Ответы (2)
Я нашел ответ на вопрос. Работает следующий код:
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
Где код под ListBox1_SelectedIndexChanged
можно очень легко поместить в кнопку.
person
TheRyan722
schedule
30.06.2013
My.Application.OpenForms
— это набор открытых формы в вашем проекте. Итак, что-то вроде:
For Each f As Form In My.Application.OpenForms
Me.SomeListBox.Items.Add(f)
Next
Затем, чтобы закрыть выбранный элемент,
DirectCast(Me.SomeListBox.SelectedItem, Form).Close()
person
Ry-♦
schedule
30.06.2013
Просто предложение @minitech; вы не можете добавить форму в список :) вы можете изменить это на: Me.SomeListBox.Items.Add(f.name)
- person zaggler; 30.06.2013
@MrCoDeXeR: Тогда близкая вещь сломается! Я не знаю, что такое строковое представление формы в
ListBox
, но оно каким-то образом появится. :) Add
берет объект. (Хотя сейчас у меня нет Visual Studio…)
- person Ry-♦; 30.06.2013
Я проверил этот метод, и в списке отображаются пустые элементы, но элементы там есть, и если вы закроете один из элементов, вся программа закроется.
- person TheRyan722; 30.06.2013
@TheRyan722 TheRyan722, потому что вам нужно добавить имя приятеля формы; вместо просто ....Add(f) измените это на: (f.Name)
- person zaggler; 30.06.2013
@ TheRyan722: Измените настройки вашего проекта, чтобы он не закрывался при закрытии начальной формы. Мой проект › Применение, я считаю.
- person Ry-♦; 30.06.2013
Я нашел ответ и опубликовал его.
- person TheRyan722; 30.06.2013