Работа с массивами однотипных элементов управления - Visual Basic .NET
Формулировка задачи:
Всем здравствуйте.
В VB-6 всё решалось индексированием. Одно имя, разный индекс. В VB.NET предлагается
использовать один обработчик события для нескольких элементов, организовывать
перечисления элементов, использовать свойство Tag. Но имена этих элементов всё равно
разные. А мне нужно обратиться именно по имени. Поясню проблему на примере (исходник
в архиве):
Пять ComboBox "связаны" с пятью Button. При клике по Button1 в ComboBox1 вставляется
текст "Button1", При клике по Button2 в ComboBox2 вставляется текст "Button2", и т.д.
Как предложенный выше пример записать максимально коротко. Не забываем что
количество связей ComboBox - Button может быть значительно больше пяти.
Листинг программы
- Public Class Form1
- Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
- ComboBox1.Tag = 0
- ComboBox2.Tag = 1
- ComboBox3.Tag = 2
- ComboBox4.Tag = 3
- ComboBox5.Tag = 4
- Button1.Tag = 0
- Button2.Tag = 1
- Button3.Tag = 2
- Button4.Tag = 3
- Button5.Tag = 4
- End Sub
- Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
- ComboBox1.Items.Add(sender.Name)
- ComboBox1.SelectedIndex = 0
- End Sub
- Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
- ComboBox2.Items.Add(sender.Name)
- ComboBox2.SelectedIndex = 0
- End Sub
- Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
- ComboBox3.Items.Add(sender.Name)
- ComboBox3.SelectedIndex = 0
- End Sub
- Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
- ComboBox4.Items.Add(sender.Name)
- ComboBox4.SelectedIndex = 0
- End Sub
- Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
- ComboBox5.Items.Add(sender.Name)
- ComboBox5.SelectedIndex = 0
- End Sub
- End Class
Решение задачи: «Работа с массивами однотипных элементов управления»
textual
Листинг программы
- With CType(Panel1.Controls("ComboBox" + sender.tag), ComboBox) ' в теге только окончание
- With CType(Panel1.Controls(sender.tag), ComboBox) ' в теге полное наименование
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д