18 messaggi dal 30 luglio 2019
In progetto WindowsForm in VB.NEt utilizzando VS 2012

Ho costruito la seguente classe:
<Imports System.Data.SqlClient
Imports System.Data.OleDb

Public Class FunDeletedLocalData

Public Event ProgressDeleted(ByVal value As Integer)
Public Event MaxProgressDeleted(value As Integer)

Shared DataStartAppList As List(Of DataStartAppCS)
Shared DataEndAppList As List(Of DataEndAppCS)
......ecc ecc >

Nel form in cui viene istanziato l'oggetto FD corrispondente ed agganciati e gestiti i relativi eventi ha tra le altre queste routine principali:
<
Public Class frmDeleteDatiLocali

Private WithEvents FD As FunDeletedLocalData

Private Sub btnAccept_Click(sender As Object, e As EventArgs) Handles btnAccept.Click
btnClose.Enabled = False
btnAccept.Enabled = False
Me.lblRecDeleted.Visible = True
Me.prgBar.Visible = True
Me.Refresh()
Dim FD = New FunDeletedLocalData
If rdTDAll.Checked Then
FD.DeleteAllDataApp()
ElseIf rdStartApp.Checked Then
FD.DeleteOnlyDataStartApp()
ElseIf rdEndApp.Checked Then
FD.DeleteOnlyDataEndApp()
End If
FD = Nothing
btnAccept.Enabled = True
btnClose.Enabled = True
Me.prgBar.Visible = False
End Sub

Private Sub FD_ProgressDeleted(value As Integer) Handles FD.ProgressDeleted

Me.prgBar.Maximum = value

End Sub

Private Sub FD_MaxProgressDeleted(value As Integer) Handles FD.MaxProgressDeleted

Me.lblRecDeleted.Text = "Record Cancellati: " & value.ToString
Me.prgBar.PerformStep()
Me.Refresh()

End Sub

...... ecc ecc..
>

Il tutto funziona correttamente e i record di fatto vengono cancellati e non ho alcun errore.
La sola cosa che non funziona sono i RaiseEventi dell'oggetto:
<
RaiseEvent MaxProgressDeleted(DataEndAppList.Count)
RaiseEvent ProgressDeleted(i)
>
Come mai? In una classe molto simile funziona tutto anche i RaiseEvent; le due classi direi che sono identiche in quanto esattamente uguali le uniche differenze
nelle varie routine sono le chiamate del tipo:
<DataEndAppDB.DeleteDataEnd(item.IdEndApp)> in quanto gli serve solo l'iD per cancellare il record
mentre nell'altra classe sono del tipo:
<DataEndAppSQLDB.AddEndApp(item)> in quanto trasferisce tutto il record.
Perchè i raisevent non vengono eseguiti?? Dove sarebbe il problema?
Grazie per ogni utile aiuto.

Modificato da alip1 il 25 aprile 2020 12:29 -
Modificato da alip1 il 25 aprile 2020 12:30 -
Modificato da alip1 il 25 aprile 2020 12:32 -
Modificato da alip1 il 25 aprile 2020 12:34 -

Alip1

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.