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 If
Tuolla 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 If
VB .NETissä kaikki on helpompaa :)
If PrintDialog1.ShowDialog = ShowDialog.Cancel Then MsgBox("Peruutettiin") End If
Aihe on jo aika vanha, joten et voi enää vastata siihen.