VB.net - Bytte indeksen til kontrollene på et skjema

Intro

For de som allerede er introdusert til VB6, er det enkelt å opprette kontroller med samme navn, men med en annen indeks.

Under VB.Net BG, ting tøffe; samlingene av kontroller eksisterer ikke lenger.

  • Det er derfor nødvendig å utvikle triks for å overvinne denne mangelen, men ikke bekymre deg, alt er mulig med VB.Net.
  • Vi kan vurdere at alle kontroller på et skjema allerede er en del av en samling. Derfra kan vi prøve å identifisere dem!
  • Vi kan gjennomgå alle "kontroll" som utgjør utformingen av skjemaet, men det viktigste er at hver kontroll har sine egne egenskaper.
  • Denne første tilnærmingen vil vi behandle egenskapene til flere kontroller av forskjellige typer med noen linjer med kode i en enkelt del.

Innledende

Åpne et nytt Windows Form-prosjekt

  • Lim inn 4 tekstbokser og sett deres tagegenskaper 1, 2, 3 og 4
  • Lim inn 6 bildeboks og sett deres Tagegenskaper 1, 2, 3, 4 ... 6
  • Lim inn 2 knapper

Kode

Koden er delt inn i to under for bedre lesbarhet, men det kan oppnås med en enkelt del.

Hvis du vil at du kan rydde begge linjene: Img.image = ...

Bildene er i glidelåsen.

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

"På skjemaet,

'4 TextBox propriété Merk 1 til 4

'6 PictureBox propriété Merk 1 til 6

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

 Public Class Form1 Private Sub Form1_Load (ByVal sender Som System.Object, ByVal e As System.EventArgs) Håndterer MyBase.Load InitPic () InitText () End Sub Sub InitText () Dim Ctl Som Kontroll Dim Txt Som TextBox Statisk NbAlea Som Integrert NbAlea + = 1: Hvis NbAlea> 4 Da NbAlea = 1 For hver Ctl I Me.Controls 'boucle sur tout les contrôles de la forme Hvis TypeOf Ctl er TextBox deretter' Vérifie que c'est un textbox Txt = Ctl Hvis Txt.Tag = NbAlea Da er det ikke et tegn på tekstboksen, men du kan ikke bruke det som passer for en variabel buffer. Txt.Text = "c'est le TextBox:" & Txt.Name Txt.BackColor = Farge .Fuchsia Else Txt.Text = "" Txt.BackColor = Color.Empty End Hvis End Hvis Neste End Sub Sub InitPic () Dim Pic Som Kontroll Dim Img Som PictureBox Statisk NbAlea Som Integrert NbAlea + = 1: Hvis NbAlea> 6 Så NbAlea = 1 'S'il n'y a que des pictureBox sur la form il n'est pas nessaire' de passer par une variable buffer For hver Pic In Me.Controls 'boucle sur tout les contrôles de la forme Hvis TypeOf Pi c Er PictureBox Så Img = Pic Hvis Pic.Tag = NbAlea Da 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 hvis slutt hvis neste ende Sub Private Sub Button1_Click (ByVal sender som System. Object, ByVal e As System.EventArgs) Håndterer Button1.Click InitText () End Sub Private Sub Button2_Click (ByVal sender som System.Object, ByVal e Som System.EventArgs) Håndterer Button2.Click InitPic () End Sub End Class 

Nedlasting:

  • Server 1: VbNet Collection.zip

Forrige Artikkel Neste Artikkel

Beste Tips