VB.net - Заміна індексу елементів керування на форму
Вступ
Для тих, хто вже ознайомився з VB6, легко створити елементи керування з однаковою назвою, але з іншим індексом.
Під VB.Net BG, речі посилюються; колекції контролів більше не існують.
- Тому необхідно розробляти трюки для подолання цього недоліку, але не хвилюйтеся, все можливо з VB.Net.
- Ми можемо вважати, що всі елементи керування вже є частиною колекції. Звідти ми можемо спробувати їх ідентифікувати!
- Ми можемо переглядати всі «контрольні» складові конструкції форми, але головна складність полягає в тому, що кожен контроль має свої власні властивості.
- Цей перший підхід ми будемо розглядати властивості декількох елементів керування різними типами з деякими рядками коду в одному підпункті.
Попередній
Відкрийте новий проект Windows Form
- Вставити 4 textBox і встановити їх властивості тегів 1, 2, 3 і 4
- Вставте 6 малюнків і встановіть їх властивості тегів 1, 2, 3, 4 ... 6
- Вставити 2 кнопки
Код
Код розбивається на два підпункти для кращої читаності, але це може бути досягнуто однією підсистемою.
Якщо ви хочете, ви можете очистити обидві лінії: Img.image = ...
Зображення знаходяться в zip.
'================================================= =============
'На формі,
'4 TextBox призначений для позначення 1 на 4
6 PictureBox призначений для позначення 1 для 6
'================================================= =============
Відкритий клас Form1 Приватний Sub Form1_Load (відправник ByVal як System.Object, ByVal e як System.EventArgs) Ручки MyBase.Load InitPic () InitText () Кінець Sub Sub InitText () Дим Ctl як контроль Dim Txt Як TextBox Статичний NbAlea як ціле NbAlea + = 1: Якщо NbAlea> 4 Потім NbAlea = 1 для кожного Ctl в Me.Controls 'букле викинуто контрлекси, якщо TypeOf Ctl є TextBox Потім' Vérifie que c'est un textbox Txt = Ctl Якщо Txt.Tag = NbAlea Тоді 'S'il n'y des que des TextBox для перегляду збігається з буфером Txt.Text = "c'est le TextBox:" & Txt.Name Txt.BackColor = Колір Phuchsia Else Txt.Text = "" Txt.BackColor = Color.Empty End Якщо кінець, якщо наступний кінець Sub Sub InitPic () Dim Pic як контроль Dim Img як PictureBox Статичний NbAlea як ціле NbAlea + = 1: Якщо NbAlea> 6 Тоді NbAlea = 1 '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' - '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' 'буфер для кожної Pic In Me. c Це PictureBox Потім Img = Pic Якщо Pic.Tag = NbAlea Тоді Img.BackColor = Колір.Аквамарин Img.BorderStyle = BorderStyle.Fixed3D 'Img.Image = System.Drawing.Bitmap.FromFile (My.Application.Info.DirectoryPath & " bt "& NbAlea &" .bmp ") 'Img.SizeMode = PictureBoxSizeMode.StretchImage Else Img.BackColor = Color.Chocolate Img.BorderStyle = BorderStyle.FixedSingle End Якщо кінець, якщо наступний кінець Sub приватний Sub Button1_Click (відправник ByVal як система. Об'єкт, ByVal e як System.EventArgs) Обробляє Button1.Click InitText () Закінчує підпорядковане Sub Button2_Click (відправник ByVal як System.Object, ByVal e як System.EventArgs) Обробляє Button2.Click InitPic () End End End клас
Завантажити:
- Сервер 1: Колекція VbNet.zip