Just nu i M3-nätverket
Gå till innehåll

Lägga till kontroller i formulär med kod


JakobS

Rekommendera Poster

Jag tänkte generera ett formulär med varierat antal kontroller beroende på en datamängds storlek.

 

I "hjälpen" finns ett exempel som jag tror beskriver hur man lägger till en ny kontroll mha kod:

 

Dim Mycmd As Control
Private Sub CommandButton1_Click()

   Set Mycmd = Controls.Add("MSForms.CommandButton.1"), CommandButton2, Visible)
   Mycmd.Left = 18
   Mycmd.Top = 150
   Mycmd.Width = 175
   Mycmd.Height = 20
   Mycmd.Caption = "This is fun." & Mycmd.Name

End Sub

 

När jag provar detta får jag körfelet "Ogiltig klassträng" - är detta namnet på kontrolltypen, det som efterfrågas som "bstrProgID As String" i "Controls.Add"?

 

Har jag ett annat "kontrollbibliotek" och hur får jag i så fall fram vad "mina" kontroller heter?

 

/J

 

Länk till kommentar
Dela på andra webbplatser

Tror felet är enkelt:

 

Private Sub CommandButton1_Click()

   Set Mycmd = Controls.Add("Forms.CommandButton.1")
   With Mycmd
       .Left = 18
       .Top = 150
       .Width = 175
       .Height = 20
       .Caption = "This is fun." & Mycmd.Name
   End With

End Sub

men hur man sedan binder knappen till en händelserutin, det vette tusan.

 

Söker lite på nätet och finner lite... men finner inget.

 

Tror egentligen bästa tipset är att ha alla knappar skapade för hand och ej i kod. Sedan stoppar du undan/gömmer de som ej behövs initialt och tar fram dem vid behov.

 

 

/T

 

Even when we know we´ll never find the answers, we have to keep on asking questions.

 

Länk till kommentar
Dela på andra webbplatser

Tack för svaret, det fungerade perfekt - man kan ju fundera på varför det som står i hjälpen inte stämmer!?

 

För att sedan för att sedan knyta en händelserutin till en skapad kontroll så hittade jag ett svar på http://tom.paschenda.org/blog/?p=16 för den som är intresserad.

 

/J

 

Länk till kommentar
Dela på andra webbplatser

Hjälpen i Excel/VBA stämmer ofta men inte alltid och inte fullt ut. Det är så det är helt enkelt.

 

Omständligt att man måste skapa en klass för att hantera dynamiska knappar.

Känns nästan enklare då att göra som jag föreslog, att skapa alla knappar i förväga, ta fram dem och ge dem rätt text beroende på händelse samt sätta några kontrollvariabler som ser till att rätt sak händer när de klickas.

 

fast klart att man kan spara allt detta i en klass, en klass som likt i exemplet reagerar på namnet/texten på knappen och utför önskad händelse.

 

 

/T

 

Even when we know we´ll never find the answers, we have to keep on asking questions.

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...