Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

combobox einträge durchloopen in vb05

Empfohlene Antworten

Veröffentlicht

hi,

habe eine combobox, deren inhalte per button event in eine Textbox übertragen werden. Jedoch soll für jedes einzelne item eine For each schleife laufen, da jeder eintrag individuell sein soll.

Jemand ne idee?

Ich hab es versucht mit combobox1.items.contains ("")

Da jeder der einträge ein bestimmtes Zeichen beinhaltet das jedoch jeder hat.

Jedoch wird das so mit der For each Schleife nicht funktionieren.

mfg

Jedoch soll für jedes einzelne item eine For each schleife laufen, da jeder eintrag individuell sein soll.

Verstehe ich nicht. Willst du Zeichen für Zeichen kopieren? Was meinst du mit "individuell"?

Gib doch mal ein Beispiel, was in der Combobox steht, und was in der Textbox stehen soll.

  • Autor

Bei dem inhalt der Combobox handelt es sich um E-mail Adressen die aus dem vorhergehenden form aus einem Datagridview per selektierung hinzugefügt wurden. Nur habe ich es damals so gemacht das ich alle sleketierten e-mails genommen habe und diese nur mit einem komma getrennt der Textbox die als Empfänger dient hinzugefügt habe. Das hat den großen Nachteil, das alle, dennen ich eine E-mail schicke auch sehen können wer noch eine bekommen hat. Nun wollte ich es ändern und wollte, da ja bekanntlich jede E-mail Adresse ein @ Zeichen beinhaltet, contains benutzen, um alle relevanten Einträge der Combobox getrennt eine E-Mail zukommen lassen. Dies wollte ich dann mit einer For Each schleife realisieren, was grad nicht so klappt :-(

Bearbeitet von Gateway_man

Das hat den großen Nachteil, das alle, dennen ich eine E-mail schicke auch sehen können wer noch eine bekommen hat.
Dann schreib die Empfänger doch einfach ins BCC-Feld.

Nun wollte ich es ändern und wollte, da ja bekanntlich jede E-mail Adresse ein @ Zeichen beinhaltet, contains benutzen, um alle relevanten Einträge der Combobox getrennt eine E-Mail zukommen lassen.
Wenn sowieso nur E-Mail-Adressen drin stehen, bringt dir doch eine Prüfung auf @ rein gar nichts. Der springende Punkt ist, dass du die Adressen einzeln übertragen musst, um dann dazwischen etwas anderes zu tun (nämlich die Mail zu versenden).

Da ist es ziemlich egal, welche Art von Schleife du benutzt. Entscheidend ist, was im Schleifenrumpf passiert.

  • Autor

Es würde wie folgt aussehn:



For each  (eben hier liegt mein problem da ich nicht weiß wie ich das mit der combobox anstellen soll, das er mir jeden index durchloopt und den jeweiligen value übernimmt)


---------------------------------------------------------------------

'Der Rest ist mir durchaus bekannt


 Dim mail As New Net.Mail.MailMessage()

            mail.From = New Net.Mail.MailAddress("Absender")

            mail.To.Add(TextBox2.Text)

            mail.Subject = TextBox1.Text

            mail.Body = RichTextBox1.Text

            mail.IsBodyHtml = True

            If low.Checked = True Then

                mail.Priority = Net.Mail.MailPriority.Low

            ElseIf Normal.Checked = True Then

                mail.Priority = Net.Mail.MailPriority.Normal

            ElseIf High.Checked = True Then

                mail.Priority = Net.Mail.MailPriority.High

            End If

            Try

                mail.Attachments.Add(New Net.Mail.Attachment(TextBox3.Text))

            Catch

            End Try

            Dim smtp As New Net.Mail.SmtpClient("SMTP Adresse")

            smtp.Credentials = New System.Net.NetworkCredential("Username", "PW")

            smtp.Send(mail)

            mail.Dispose()

            smtp = Nothing

Next


            MessageBox.Show("Mails sind versendet", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information)


Möglichkeit 1 von Klotzkopp bereits vorgeschlagen BCC nutzen:

mail.to.add("absender")

mail.bcc.add(TextBox2.Text)

2 Möglichkeit Schleife durch Combo Box nutzen:
  

For Each item As String In ComboBox1.Items

            MsgBox(item)

'deine mail routine

        Next

Bearbeitet von DominikJ
Da war er wieder schneller :D

  • Autor

habt dank ihr beide ;)

hier nochmal der vollständige funktionierende code:

(Die prioritäten hab ich mal raus da es damit noch einige probleme gibt)


For Each item As String In ComboBox1.Items

            TextBox2.Text = item

            Dim mail As New Net.Mail.MailMessage()

            mail.From = New Net.Mail.MailAddress("ABSENDER")

            mail.To.Add(TextBox2.Text)

            mail.Subject = TextBox1.Text

            mail.Body = RichTextBox1.Text

            mail.IsBodyHtml = True

            'If low.Checked = True Then

            '    mail.Priority = Net.Mail.MailPriority.Low

            'ElseIf Normal.Checked = True Then

            '    mail.Priority = Net.Mail.MailPriority.Normal

            'ElseIf High.Checked = True Then

            '    mail.Priority = Net.Mail.MailPriority.High

            'End If

            Try

                mail.Attachments.Add(New Net.Mail.Attachment(TextBox3.Text))

            Catch

            End Try

            Dim smtp As New Net.Mail.SmtpClient("mail.gmx.net")

            smtp.Credentials = New System.Net.NetworkCredential("USER", "PASSWORD")

            smtp.Send(mail)

            mail.Dispose()

            smtp = Nothing

        Next

        MessageBox.Show("Mails sind versendet", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information)

Bearbeitet von Klotzkopp
Persönliche Daten und Zugangsdaten entfernt

Deine Daten rausnhemen ...

Und wieso nun noch TextBox2 verwenden?

sind doch draußen ?!?!?!
Wenn du dir die Zeiten genau ansiehst, stellst du fest, dass ich deine Mail-Zugangsdaten und die dazugehörige Mailadresse entfernt habe, nachdem DominikJ so nett war, darauf hinzuweisen. Hätte er das nicht getan, würden die vermutlich jetzt noch da stehen.

Statt alternierender Satzzeichen wäre hier vielleicht ein "Danke" angebracht.

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.