VB.net - Înlocuirea indexului comenzilor pe un formular

introducere

Pentru cei care sunt deja introdus în VB6, este ușor să creați controale cu același nume, dar cu un index diferit.

Sub VB.Net BG, lucrurile se înrăutățeau; colecțiile de controale nu mai există.

  • Prin urmare, este necesar să dezvoltați trucuri pentru a depăși această lipsă, dar nu vă faceți griji, totul este posibil cu VB.Net.
  • Putem considera că toate controalele pe un formular fac deja parte dintr-o colecție. De acolo putem încerca să le identificăm!
  • Putem revizui toate "controlul" care alcătuiesc proiectul formularului, dar principala dificultate este aceea că fiecare control are proprietăți proprii.
  • Această primă abordare va trata proprietățile controalelor multiple de diferite tipuri cu unele linii de cod într-un singur subs.

Preliminar

Deschideți un nou proiect Windows Form

  • Inserați 4 textBox și setați proprietățile etichetei 1, 2, 3 și 4
  • Lipiți caseta 6 și setați proprietățile Tag 1, 2, 3, 4 ... 6
  • Lipiți 2 butoane

Cod

Codul este împărțit în două secțiuni pentru o mai bună citire, dar ar putea fi realizat printr-un singur sub.

Dacă doriți, puteți șterge ambele linii: Img.image = ...

Imaginile sunt în zip.

„================================================= =============

"Pe formular,

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

'6 Proprietăți PictureBox Tag de 1 à 6

„================================================= =============

 Public Class Form1 Private Sub Form1_Load (ByVal expeditor ca System.Object, ByVal e ca System.EventArgs) Mânere MyBase.Load InitPic () InitText () End Sub Sub InitText () Dim Ctl ca Dim Dimensiune Txt Ca TextBox Static NbAlea ca Integer NbAlea + = 1: Dacă NbAlea> 4 Apoi NbAlea = 1 Pentru fiecare Ctl în Me.Controls 'boucle sur tout les contrôles de la forme Dacă TypeOf Ctl este TextBox Apoi' Vérifie que c'est un textbox Txt = Ctl Dacă Txt.Tag = NbAlea Apoi 'S'il n'y un que des TextBox sur la form il n'est pas nécessaire' de passer par un buffer variabil Txt.Text = "c'est le TextBox:" & Txt.Name Txt.BackColor = Culoare .Fuchsia Else Txt.Text = "" Txt.BackColor = Culoare.Emplica Sfarsit Daca Sfarsit Daca Urmatorul Sfarsit Sub Sub InitPic () Dim Pic As Control Dim Img Ca PictureBox Static NbAlea Ca Integral NbAlea + = 1: Daca NbAlea> 6 Apoi NbAlea = 1 'S'il n'y a que des pictureBox sur la forma il n'est pas nécessaire' passer par un buffer variabil Pentru fiecare Pic In Me.Controls 'boucle sur tout les contrôles de la forme Dacă TypeOf Pi c Este PictureBox Apoi Img = Pic Dacă Pic.Tag = NbAlea Apoi Img.BackColor = Color.Aquamarine Img.BorderStyle = BorderStyle.Fixed3D 'Img.Image = System.Drawing.Bitmap.FromFile (My.Application.Info.DirectoryPath & " \ bt "& NbAlea &" .bmp ") 'Img.SizeMode = ImagineBoxSizeMode.StretchImage Else Img.BackColor = Culoare.Chocolate Img.BorderStyle = BorderStyle.FixedSingle Sfârșit Dacă Sfârșit Dacă Următorul Închid Sub Sub Private Button1_Click (ByVal sender As System. Object, ByVal e ca System.EventArgs) Manere Button1.Click InitText () End Sub Privat Sub Button2_Click (ByVal expeditor ca System.Object, ByVal e ca System.EventArgs) Manere Button2.Click InitPic () End Sub End Class 

Descarca:

  • Server 1: VbNet Collection.zip

Articolul Precedent Articolul Următor

Cele Mai Importante Sfaturi