Ohjelmani tulostaa raportin suoraan tulostimelle. Tähän asti se on toiminut hyvin, mutta jostain syystä se ei tunnista enää tulosta-nappia tulostusikkunassa. On ihan sama painaako tulosta vai peruuta. Ohjelma tulkitsee sen aina peruutukseksi.
CommonDialog.Action = 5
If vbCancel Then
Exit Sub
End IfTuolla koodilla se on ennen toiminut ihan oikein. Onko jokin parempi tapa määritellä peruuta-nappi?
vbCancel on vakio = 2 jolloin ehtolause toteutuu aina riippumatta mitä painaa tai ei paina.
Tässä on toimiva koodi Peruuta-napin tunnistamiseen. Kun CancelError-ominaisuuden arvo on True, tulostusikkuna aiheuttaa virheen, kun käyttäjä painaa Peruuta-napista. Tämän virheen pystyy sitten tarkistamaan Visual Basicissa.
On Error Resume Next
CommonDialog.CancelError = True
CommonDialog.Action = 5
If Err = cdlCancel Then
MsgBox "Peruuta-nappia painettiin!"
Err = 0
End IfVB .NETissä kaikki on helpompaa :)
If PrintDialog1.ShowDialog = ShowDialog.Cancel Then
MsgBox("Peruutettiin")
End IfAihe on jo aika vanha, joten et voi enää vastata siihen.