Om man lääger in kod i control_change() kommer ju den att exekveras när kontrollens innehåll ändras. Detta händer förstås när användaren ändrar innehållet, såklart, det är vad man väntar sig. Men händelsen change triggas också när någon annan del i programmet ändrar innehållet i kontrollen. Det är inte precis vad jag väntat mig. Finns det något sätt att undvika att det blir så? OJ! Det var ännu värre när det gäller en Combobox upptäcker jag. Den reagerar på "change" bara när jag inte väntat mig det, och inte när användaren ändrar innehållet!!! Men använder man "click" istället så reagerar boxen för båda fallen (användare + programmet). Så jag behöver hjälp att få bort alla kontrollers reaktion på "click"-event från programmet (som uppstår vid ändring av av kontrollens värde). Litet exempel som kanske hjälper.Event-hantering i VB
- HansEvent-hantering i VB
- HansSv: Event-hantering i VB
* Skapa ny Standard EXE projekt
* Lägg till en CheckBox till Form1
* Lägg till en ComboBox till Form1
* Lägg till en TextBox till Form1
* Klistra in följande kod i Form1
'Form1
Private mBusy As Boolean
Private Sub Check1_Click()
If Not mBusy Then
MsgBox "Check1_Click"
End If
End Sub
Private Sub Combo1_Change()
If Not mBusy Then
MsgBox "Combo1_Change"
End If
End Sub
Private Sub Form_Load()
mBusy = True
Check1.Value = vbChecked
Combo1.ListIndex = -1
Text1.Text = ""
mBusy = False
End Sub
Private Sub Text1_Change()
If Not mBusy Then
MsgBox "Text1_Change"
End If
End Sub