VB.net - Menggantikan indeks kawalan pada borang

Pengenalan

Bagi mereka yang sudah diperkenalkan kepada VB6, mudah untuk membuat kawalan dengan nama yang sama tetapi dengan indeks yang berbeza.

Di bawah VB.Net BG, perkara-perkara yang sukar; koleksi kawalan tidak lagi wujud.

  • Oleh itu, adalah perlu untuk membangunkan helah untuk mengatasi kekurangan ini, tetapi jangan risau, semuanya boleh dilakukan dengan VB.Net.
  • Kita boleh mempertimbangkan bahawa semua kawalan dalam bentuk sudah menjadi sebahagian daripada koleksi. Dari sana kita boleh cuba mengenalinya!
  • Kita boleh mengkaji semula semua "kawalan" yang membentuk reka bentuk bentuk, tetapi utama kesukaran ialah setiap kawalan mempunyai sifatnya sendiri.
  • Pendekatan pertama kami akan merawat ciri-ciri pelbagai kawalan pelbagai jenis dengan beberapa baris kod dalam satu sub.

Awal

Buka projek Borang Windows baru

  • Paste textbox 4 dan tetapkan sifat Tag 1, 2, 3 dan 4
  • Tampal 6 kotak gambar dan tetapkan sifat Tag 1, 2, 3, 4 ... 6
  • Tampal 2 butang

Kod

Kod ini dibahagikan kepada dua sub untuk kebolehbacaan yang lebih baik, tetapi ia boleh dicapai oleh satu sub.

Jika anda mahu anda boleh membersihkan kedua-dua baris: Img.image = ...

Imej berada dalam zip.

'================================================= =============

'Dalam bentuk,

'4 TextBox propriété Tag de 1 à 4

'6 PictureBox propriété Tag de 1 à 6

'================================================= =============

 Kelas Awam Form1 Private Sub Form1_Load (Pengirim ByVal Sebagai System.Object, ByVal e As System.EventArgs) Mengendalikan MyBase.Load InitPic () InitText () End Sub Sub InitText () Dim Ctl Sebagai Control Dim Txt Sebagai TextBox Static NbAlea As Integer NbAlea + = 1: Jika NbAlea> 4 Kemudian NbAlea = 1 Untuk Setiap Ctl Dalam Me.Controls 'boucle sur tout les contrôles de la forme If TypeOf Ctl Is TextBox Then' Vérifie que c'est un textbox Txt = Ctl If Txt.Tag = NbAlea Kemudian 'S'il yang mengesan teks TextBox adalah seperti berikut:' TextBox: "& Txt.Name Txt.BackColor = Color .Fuchsia Else Txt.Text = "" Txt.BackColor = Color.Empty End If End If Next End Sub Sub InitPic () Dim Pic As Control Dim Img As PictureBox Static NbAlea As Integer NbAlea + = 1: If NbAlea> 6 Then NbAlea = 1 'S'il n a que des pictureBox sur la form il n'est pas nécessaire' de passer with une variable buffer For Each Pic In Me.Controls 'boucle sur tout les contrôles de la forme If TypeOf Pi c Adakah PictureBox Kemudian Img = Pic Jika Pic.Tag = NbAlea Kemudian Img.BackColor = Color.Aquamarine 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 If End If Next End Sub Private Sub Button1_Click (ByVal sender As System. Objek, ByVal e As System.EventArgs) Mengendalikan Button1.Click InitText () Akhir Sub Sub Sub Button2_Click (Pengirim ByVal Sebagai System.Object, ByVal e As System.EventArgs) Mengendalikan Button2.Click InitPic () End Sub End Class 

Muat Turun:

  • Server 1: VbNet Collection.zip

Artikel Sebelumnya Artikel Seterusnya

Tip-Tip Utama