Buonasera a tutti.
Come al solito...ho bisogno del vs. aiuto, che è per me è sempre stato risolutivo.
Ho questo codice, che -come si può constatare- acquisisce le email ed i suoi allegati.
Il mio problema è connesso agli allegati.
Mi spiego : acquisisco per ogni mail gli (eventuali) allegati (che salvo in una cartella \inbox\allegati) e per ciascuno di essi creo un bottone per visualizzare il corrispondente allegato.
Ora, supponiamo che si creino 3 bottoni relativo alla mail X.
Passo ad altro messaggio : i 3 bottoni non vengono sostituiti ed anzi se il nuovo messaggio ha un allegato esso non viene acquisito.
Come posso "distruggere" i 3 bottoni, visto che dispose non mi da il risultato atteso?
Grazie, grazie mille.
Private Sub DataGridView1_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgv.CellContentClick
AttachFile.Clear()
If e.ColumnIndex = 0 Then
'In base all'elemento selezionato, carichiamo in memoria il file eml
Dim indice As Integer = e.RowIndex
Dim oMail As New EAGetMail.Mail("Tryit")
Dim nomeEml As String = Application.StartupPath & "\Inbox\" & dgv.Rows(indice).Cells(4).Value
Try
oMail.Load(nomeEml, False)
Catch ex As Exception
MsgBox("Il file eml non è stato trovato")
Exit Sub
End Try
' decodifica il file winmail.dat (TNEF) , che si trova alla fine di ogni mail
oMail.DecodeTNEF()
DataMsg.Text = oMail.SentDate
DaMsg.Text = Replace(oMail.From.ToString, """", "")
oggettoMsg.Text = oMail.Subject.ToString
Dim testo As String = oMail.HtmlBody
Dim atts() As EAGetMail.Attachment = oMail.Attachments 'numero allegati
Dim tempFolder As String = Application.StartupPath & "\inbox\allegati\"
Dim count As Integer = atts.Length
If (Not System.IO.Directory.Exists(tempFolder)) Then
System.IO.Directory.CreateDirectory(tempFolder)
End If
For i As Integer = 0 To count - 1
Dim att As EAGetMail.Attachment = atts(i) 'att contiene il nome del file allegato
Dim attname As String = String.Format("{0}\{1}", tempFolder, att.Name) 'contiente il nome del file con il percorso in cui deve essere copiato
att.SaveAs(attname, True) 'salva il nome del file in \inbox\allegati
'acquisiamo in attachFile i nomi con i percorsi degli allegati
AttachFile.Add(attname)
Next
contatore += 1
My.Computer.FileSystem.WriteAllText(Application.StartupPath & "\inbox\testo" & contatore.ToString & ".html", testo, False)
Dim nomeFileHtml As String = Application.StartupPath & "\inbox\testo" & contatore.ToString & ".html" 'nomeEml
url.Text = nomeFileHtml
wv.Source = New Uri(url.Text)
End If
'ora dobbiamo visualizzare i file allegati con i relativi links
If AttachFile.Count > 0 Then
Dim btn As Button
Dim asseY As Integer = 160
Dim asseX As Integer = 100
For x = 0 To AttachFile.Count - 1
btn = New Button()
btn.Name = "btn" & x.ToString
SplitContainer1.Panel2.Controls.Add(btn)
btn.Text = Path.GetFileName(AttachFile.Item(x))
btn.Tag = AttachFile.Item(x)
btn.Location = New Point(asseX, asseY)
AddHandler btn.Click, AddressOf btn_click
asseX += btn.Width + 20
Next
End If
End Sub