VB.net - Byta index för kontrollerna på ett formulär

Intro

För dem som redan introduceras till VB6 är det lätt att skapa kontroller med samma namn men med ett annat index.

Under VB.Net BG, saker tuffa; samlingarna av kontroller finns inte längre.

  • Det är därför nödvändigt att utveckla tricks för att övervinna denna brist, men oroa dig inte, allt är möjligt med VB.Net.
  • Vi kan anse att alla kontroller på ett formulär redan ingår i en samling. Därifrån kan vi försöka identifiera dem!
  • Vi kan granska alla "kontroller" som utgör utformningen av formuläret, men det viktigaste är att varje kontroll har sina egna egenskaper.
  • Detta första tillvägagångssätt kommer vi att behandla egenskaperna hos flera kontroller av olika typer med några rader av kod i en enda del.

Preliminära

Öppna ett nytt Windows-formulärprojekt

  • Klistra in 4 textbox och ställ in tagegenskaper 1, 2, 3 och 4
  • Klistra in 6 bildrutor och ställ in tagegenskaper 1, 2, 3, 4 ... 6
  • Klistra in 2 knappar

Koda

Koden är uppdelad i två delar för bättre läsbarhet, men det kan uppnås med en enda del.

Om du vill kan du rensa båda raderna: Img.image = ...

Bilderna finns i dragkedjan.

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

"På formuläret,

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

'6 PictureBox propriété Tag 1 till 6

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

 Public Class Form1 Private Sub Form1_Load (ByVal-avsändare Som System.Object, ByVal e As System.EventArgs) Hanterar MyBase.Load InitPic () InitText () End Sub Sub InitText () Dim Ctl Som Control Dim Txt Som TextBox Static NbAlea Som Integer NbAlea + = 1: Om NbAlea> 4 Då NbAlea = 1 För varje Ctl I Me.Controls 'boucle sur tout les contrôles de la forme Om TypeOf Ctl är TextBox Då' Vérifie que c'est un textbox Txt = Ctl Om Txt.Tag = NbAlea Därefter är det inte så att du skriver en textboks i form av en ny bokstav. De passar för en variabel buffert. Txt.Text = "c'est le TextBox:" & Txt.Name Txt.BackColor = Färg .Fuchsia Else Txt.Text = "" Txt.BackColor = Color.Empty End Om End If Next End Sub Sub InitPic () Dim Pic Som Control Dim Img Som PictureBox Static NbAlea Som Integer NbAlea + = 1: Om NbAlea> 6 Då NbAlea = 1 'S'il n'y a que des pictureBox sur la form il n'est pas nessaire' de passer par une variabel buffert För varje Pic In Me.Controls 'boucle sur tout les contrôles de la forme Om TypeOf Pi c Är PictureBox Då Img = Pic Om Pic.Tag = NbAlea Då 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 = Färg.Chocolate Img.BorderStyle = BorderStyle.FixedSingle End Om End If Next End Sub Privat Sub Button1_Click (ByVal avsändare Som System. Objekt, ByVal e Som System.EventArgs) Hanterar Button1.Click InitText () Slut Sub Privat Sub Button2_Click (ByVal avsändare Som System.Object, ByVal e As System.EventArgs) Hanterar Button2.Click InitPic () End Sub End Class 

Ladda ner:

  • Server 1: VbNet Collection.zip

Tidigare Artikel Nästa Artikel

Bästa Tipsen