Имам формуляр със списъчно поле и искам да мога да го попълня с всички отворени формуляри на едно и също приложение. Искам обаче да мога да избирам елемент от списъчното поле и да мога да затворя формуляра, свързан с този елемент в списъчното поле. Възможно ли е това да се направи?
Как да попълните списък със списък на всички отворени формуляри
Отговори (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 това е така, защото трябва да добавите името на приятеля от формата; вместо просто ....Add(f) променете това на: (f.Name)
- person zaggler; 30.06.2013
@TheRyan722: Променете настройките на проекта си, за да не се затваря, когато първоначалният формуляр е затворен. Моят проект › Приложение, вярвам.
- person Ry-♦; 30.06.2013
Намерих отговор и го публикувах.
- person TheRyan722; 30.06.2013