Avatar billede hyber Nybegynder
09. juli 2005 - 20:56 Der er 1 kommentar og
1 løsning

RaiseEvent med Cancel option

Jeg er ved at lave et lille sync værktøj. Der ville jeg gerne hvis man kunne annullere en sletning før den noget bliver slettet.

Har har forstillet mig at bruge en RaiseEvent lige inden jeg slette noget, men hvordan kan jeg sende svar tilbage til min klasse fra en event?

Det ville jo være dejligt hvis man kunne lave noget i stil med

RaiseEvent(pbolCancel as boolen)

som så kunne sendes tilbage via eventen, som man kunne detecte direkte på. Er det muligt? Jeg har kikket rundt, men syntes ikke lige at kunne finde noget.

Feks. i Outlook kan man annullere en sletning, før den sker med:

Dim WithEvents oItem As Outlook.AppointmentItem

Private Sub oItem_BeforeDelete(ByVal Item As Object, Cancel As Boolean)

End Sub

Hvordan virker kan jeg lave noget ligende i min kode? Jeg kan jo ikke bare lave en cancel boolean i min klasse, for jeg sender jo cancel til min form og ikke den anden vej.

Her er et anden eksempel fra min doku:

Private Sub DataGrid1_BeforeDelete (Cancel As Integer)
  Dim mResult As Integer
  mResult = MsgBox("Are you sure that you want to delete " & DataGrid1.SeletedRows &  " record?", _
    vbYesNo And vbQuestion, "Delete Confirmation")
  If mResult = vbNo Then Cancel = True
End Sub

Jeg syntes bare ikke lige at kunne forstå hvordan det kommer tilbage til klassen...

Men det kan I vel hjælpe mig med :-)

--
Esben
Avatar billede sjh Nybegynder
11. juli 2005 - 00:19 #1
jeg går ud fra at det er en UserControl eller Class du er ved at lave.. så kan du gøre sådan..


Option Explicit

Public Event BeforeDelete(ByRef blnCancel As boolen)

Public Sub Delete(intID As Integer)
Dim m_Cancel As Boolean ' standard false
  RaiseEvent BeforeDelete(m_Cancel)
  If m_Cancel = True Then
    ' Annuller
    Else
    ' Delete intID
  End If
End Sub
Avatar billede hyber Nybegynder
11. juli 2005 - 07:16 #2
Ja tænk at det kunne være så simpelt. I går aftes fandt jeg denne artikkel: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbcon98/html/vbcondeclaringraisingevents.asp

Men efter som at du nåede at svare først får du point'ne.

Tak for hjælpen.
Esben
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester