Just nu i M3-nätverket
Jump to content

Lägga till kontroller i formulär med kod


JakobS

Recommended Posts

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

 

Link to comment
Share on other sites

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.

 

Link to comment
Share on other sites

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

 

Link to comment
Share on other sites

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.

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...