Fråga : Ms tar fram den globala händelseförlagehanteraren

Detta angår ms tar fram 2003 VBA.
I har 336 textboxes på en bilda.  Jag önskar att alla de ska reagera till en double-clickhändelse i samma danar--och kanske i framtiden till andra händelser.  Jag skulle föredrar att inte skapa 336 separata händelser i datalistans enhet, en för varje textbox.  Ta prov kodifierar för denna typ av lösningen, för Excel, kan finnas på: för href=" http://j-walk.com/ss/excel/tips/tip44.htm " för
http://j-walk.com/ss/excel /tips/tip44.htm

I kan inte få mitt anpassat kodifierar för att fungera in tar fram.  Den sammanställer utan fel--men double-clickhändelsen får inte behandlad.  Vilken förmiddag mig som orätt gör?  Kodifiera för att följa:

in en klassificeraenhet namngav för class=" codeSnippet " för clsTextboxGroup
1 för >

'clsTextboxGroup
',-------------------------------------------------------------------
Alternativ jämför databas
Explicit alternativ
Offentliga WithEvents TextBoxGroup som Access.TextBox
Privata underTextboxGroup_DblClick (annulleringen som heltal)
MsgBox ”hälsning från” & TextBoxGroup.Name
'Jag ska satt i mer väsentlig händelser, efter jag har fått detta arbete
Avsluta suben
',-------------------------------------------------<-/pre>


In enheten av bilda med 336 för class=" codeSnippet " för textboxes

1 för >

'datalistans enhet
Alternativ jämför databas
Explicit alternativ
Dunkla MyTextboxes () som ny clsTextBoxGroup
Privata underForm_Load ()
Appell InitMyTextboxEvents
avsluta suben
',---------------------------------------------------
Offentliga underInitMyTextboxEvents ()
Dunkla TextboxCount som heltal
Dunkel ctl som kontrollerar
'Skapa textboxen anmärker
TextboxCount = 0
För varje ctl bildar in (”frmWeek”). Detail.Controls
Om ctl.ControlType = acTextBox därefter
Om ctl. Känd lik ”*booking* haffar” därefter 'endast den required textboxen kontrollerar
TextboxCount = TextboxCount + 1
ReDim sylt MyTextboxes (1 till TextboxCount)
Fastställda MyTextboxes (TextboxCount) .TextBoxGroup = ctl
Avsluta om
Avsluta om
Nästa ctl
avsluta sub<-/pre>

" klar "

Svar : Ms tar fram den globala händelseförlagehanteraren

Jag har inte fungerat med klassificerar alla som mycket, men mig ser en koppla ihop av saker.

1. Du har skapat en variabel i ditt klassificerar enheten, TextBoxGroup, men den pekar inte till något.

Du behöver att tillfoga:

Offentlig egenskap fastställda TextBoxGroup (txt som Textbox)

   Fastställda TextBoxGroup = txt

Avsluta suben

till ditt klassificera.

2. Ta fram har en optimizationbuilt-in som, om den inte ser ”[händelsetillvägagångssättet]” för en händelseegenskap, det inte gör lönelyften en händelse.  Så du behöver uppsättningen det.  Du kan göra denna i klassificerauppsättningen:


Offentlig egenskap fastställda TextBoxGroup (txt som Textbox)

    Fastställda TextBoxGroup = txt
    TextBoxGroup.OnDblClick = ”[händelsetillvägagångssättet]”,

Avsluta suben

3. Vara som Helen har sagt, mig gör inte funderare som du kan använda en samlingnågot liknande det.  i stället du behöver att ha ditt att klassificera handtaget som en singeltext boxas och använder därefter en samling i bilda för att bygga en samling av kontrollerar.  Jag ska ser, om jag inte kan gräva upp något kodifierar, eller någon, som har fungerat med, klassificerar ett lott mer.

JimD.

Andra lösningar  
 
programming4us programming4us