A kontrollok dinamikus hozzáadása

Az új kontrollok hozzáadásához olyan alkalmazásokra van szükség, amelyek nem ismerik előre, hogy mennyi és mire van szükség, ezért ha programozásra van szükség az ellenőrzések hiányának lehetőségét illetően, ez a cikk tárgyalja.

Többféleképpen hozhat létre vezérlőkészletet, például: a vezérlési űrlapra állítja, miközben beállítja az Index = 0 értéket, amely automatikusan létrehoz egy sor vezérlőt, ahol ez a vezérlés lesz az első. Ezután a Load (Index As Integer)

például:
Hozzon létre egy egyszerű exe projektet, és húzza rá a gombot, állítsa az Index = 0 értéket, és írja be a következő kódot:

Dim mCount mint egész

Privát Sub Command1_Click (index egész számként)
mCount = mCount + 1
Load Command1 (Count) 'Adjon hozzá egy olyan vezérlést, amelynek egy tömbje nagyobb, mint egy
Command1 (mCount) .Height = Command1 (0) .Height 'A paraméterek beállítása
Command1 (mCount) .Width = Command1 (0) .Width
Command1 (mCount) .Visible = True 'Megjelenítés látható
Command1 (mCount) .Left = Command1 (mCount - 1) .Left + Command1 (0) .Width 'Hely az űrlapon
Command1 (mCount) .Top = Command1 (0) .Top
End Sub

Private Sub Form_Load ()
mCount = 0 'A tömb első gombjának indexével megegyező értéket deklarálunk
End Sub

Így létrehozunk egy gombsorozatot, amely minden sajtót megnövel. De az ilyen rendszer hozzáadásának kevés előnye lenne, ha nem lenne lehetséges az ellenőrzések eltávolítása. Ennek megfelelően az Unload (Index As Integer)

példa;
Az előző példánkban szereplő formanyomtatványunkon egy másik gombot helyezünk el, és hozzáadjuk a következő kódot:

Privát Sub delet_Click ()
Letöltés parancs1 (mCount)
End Sub

De azonnal felhívom a figyelmét arra, hogy NEM lehet eltávolítani az űrlap tervezése során hozzáadott elemet. Tehát legyen óvatos.

Van egy másik módja annak, hogy adjunk hozzá ellenőrzéseket az űrlaphoz. Ez a Hozzáadási mód alkalmazása, amely a Controls családban elérhető. Ez a módszer sokkal jobb, mert akkor nem kell létrehoznia a tömbök első elemeit. Minden már közvetlenül létre fog hozni, amikor a felhasználó dolgozik a programmal. A program interfészét teljesen megváltoztathatja a megfelelő kód hozzáadásával.

Ezzel a módszerrel jó, mert minden egyes objektumnál megadhatod az eseményfeldolgozó kódot, azaz ezek a vezérlők lehetnek különállóak, nem tömbelemek, ami sokkal kényelmesebb.

Private WithEvents NewButton CommandButton "Azt mondjuk a rendszernek, hogy az eseménykezelőt egy gombnyomással szeretnénk használni
Private Sub NewButton_Click () "A gomb megnyomásával kezelendő kód
MsgBox "Az új gombra kattintottál"
End Sub
Privát Sub Form_Click ()
Set NewButton = Controls.Add ("VB.CommandButton", "NewButton") 'Ha egy űrlapra kattint, új gomb jelenik meg
NewButton.Visible = Igaz
NewButton.Height = 1000
NewButton.Width = 1000
NewButton.Top = 0
NewButton.Left = 0
NewButton.Caption = "Kattintson rám."
End Sub

Távolítsa el a vezérlést egyszerű:
Form1.Controls.Remove "NewButton"
Így hozzáadhat bármilyen kontrollt, hozzárendelheti az eseménykezeléshez. Általában minden rendben van.

Szabványos szabványosítási szabványok listája:
VB.ComandButton - gomb
VB.ComboBox - legördülő lista
VB.DirListBox - A könyvtárak listája
VB.DriveListBox - Eszközök listája
VB.FileListBox - A fájlok listája
VB.Form - Form
VB.Frame - keret
VB.HScrollBar - vízszintes görgetősáv
VB.Image - Kép
VB.Label - A felirat
VB.Line-Line
VB.ListBox - lista
VB.MDIForm - MDI formanyomtatvány
VB.Menu - Menü
VB.OLE - OLE komponens
VB.OptionButton - Kiválasztás
VB.PictureBox - Kép
VB.Szép - Kör
VB.TextBox - Szöveg ablak
VB.UserControl - Egyéni vezérlés
VB.UserDocument - Felhasználói dokumentum
VB.VScrollBar - Függőleges görgetősáv
VB.Timer - Időzítő

És ez nem minden, de nem emlékszem többé. Igen, a VB modulban az Objektum-böngészőben tekintheti meg. És mégis, ha hozzáadja az ActiveX-vezérlőt, amelyhez licenckulcsok szükségesek, ne felejtse el hozzáadni a kulcsot.
A vezérlők dinamikus kiegészítése hatékony módja az alkalmazások munkamódszerének megváltoztatására, a legalkalmasabb módszer az Add, és a terhelési módszert általában akkor használják statikus objektumok hozzáadásakor, amikor semmit sem kell feldolgozni.

Kapcsolódó cikkek