Benutzer mit den meisten Antworten
Listview

Frage
-
Ich versuche mir über eine Listview eine E-Mail anzuzeigen zu lassen. Mit einer Listbox geht es und mit einer
listview bekomme ich kein ergebniss hier mein ergebnis mit der listbox
Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged If Me.Controls("WebBrowser") IsNot Nothing Then Dim browser As Control = Me.Controls("WebBrowser") Me.Controls.Remove(browser) browser.Dispose() End If Dim newBrowserControl As New WebBrowser With newBrowserControl .Size = New Size(Me.Size.Width - 350, Me.Size.Height - 100) .Location = New Point(310, 40) .AllowNavigation = False .ScriptErrorsSuppressed = False .IsWebBrowserContextMenuEnabled = False .WebBrowserShortcutsEnabled = True .ScrollBarsEnabled = True .Name = "WebBrowser" .Anchor = AnchorStyles.Bottom Or AnchorStyles.Left Or AnchorStyles.Right Or AnchorStyles.Top End With Me.Controls.Add(newBrowserControl) For Each oneMessage As EmailMessage In _messages If oneMessage.From.ToString.Equals(ListBox1.SelectedItem.ToString) Then Me.txtFrom.Text = oneMessage.From Dim url As Uri = New System.Uri(oneMessage.CreateHTMLFile()) newBrowserControl.Url = url newBrowserControl.Update() End If Next End Sub
- Bearbeitet Stefan FalzModerator Donnerstag, 26. November 2020 11:34 Code als Code eingefügt
Antworten
-
IMO müsste es bei einem Listview eigentlich wie folgt lauten:
For Each oneMessage As EmailMessage In _messages If oneMessage.From.ToString.Equals(lvwMail.SelectedItems(0).Text) Then Me.txtFrom.Text = oneMessage.From Dim url As Uri = New System.Uri(oneMessage.CreateHTMLFile()) newBrowserControl.Url = url newBrowserControl.Update() End If Next
Wobei ich die Bezeichnung auch ändern würde Listbox <> Listview.
- Als Antwort vorgeschlagen Dimitar DenkovMicrosoft contingent staff, Administrator Donnerstag, 3. Dezember 2020 09:02
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Mittwoch, 23. Dezember 2020 11:06
-
Hi,
LvwMail wäre die Referenz auf dein ListView Control, wenn Du das denn so benannt hast.
ListBox1 verweist auf dein ListBox Control, Du sagtest ja aber, dass Du das mit einer ListView machen willst.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET (2001-2018)
https://www.asp-solutions.de/ - IT Beratung, Softwareentwicklung, Remotesupport- Als Antwort vorgeschlagen Dimitar DenkovMicrosoft contingent staff, Administrator Donnerstag, 3. Dezember 2020 09:02
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Mittwoch, 23. Dezember 2020 11:06
-
Hallo
Du wirst nicht drum herumkommen, dir Grundlagen beizubringen, dazu gehört auch, den grundlegenden Unterschied zwischen ListBox und ListView zu verstehen.
Du schreibst lediglich, das du Probleme hast, auf das SelectedItem zuzugreifen. Das "befüllen" einer ListView ist aber auch ein anderer Vorgang, wie bei einer ListBox. Übrigens gibt es bei einer ListView kein "SelectedItem", es ist immer eine Collection (SelectedItems).
Also, so wie es Stefan Falz schon schrieb: weg mit der ListBox. Und Ahmed Martens hat dir doch schon eine Lösung präsentiert..
Und von mir auch noch ein kleines Beispiel:
Private Sub FillListView() listView1.View = View.Details listView1.LabelEdit = True listView1.AllowColumnReorder = True listView1.CheckBoxes = True listView1.FullRowSelect = True 'listView1.MultiSelect = False listView1.GridLines = True listView1.Sorting = SortOrder.Ascending Dim item1 As New ListViewItem("item1", 0) item1.Checked = True item1.SubItems.Add("1") item1.SubItems.Add("2") item1.SubItems.Add("3") Dim item2 As New ListViewItem("item2", 1) item2.SubItems.Add("4") item2.SubItems.Add("5") item2.SubItems.Add("6") Dim item3 As New ListViewItem("item3", 0) item3.Checked = True item3.SubItems.Add("7") item3.SubItems.Add("8") item3.SubItems.Add("9") listView1.Columns.Add("Item Column", -2, HorizontalAlignment.Left) listView1.Columns.Add("Column 2", -2, HorizontalAlignment.Left) listView1.Columns.Add("Column 3", -2, HorizontalAlignment.Left) listView1.Columns.Add("Column 4", -2, HorizontalAlignment.Center) listView1.Items.AddRange(New ListViewItem() {item1, item2, item3}) End Sub Private Sub listView1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles listView1.SelectedIndexChanged Dim selectedItems = listView1.SelectedItems If selectedItems.Count > 0 Then Me.Text = selectedItems(0).Text + "-" + selectedItems(0).SubItems(1).Text + "-" + selectedItems(0).SubItems(2).Text Else Me.Text = "Empty" End If End Sub
Gruß
Stefan Krömer
Freiberufler im Bereich Softwareentwicklung Von der PLC und Robotik zu VB.NET & C#, vorrangig WPF und UWP
- Als Antwort vorgeschlagen Dimitar DenkovMicrosoft contingent staff, Administrator Donnerstag, 3. Dezember 2020 09:02
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Mittwoch, 23. Dezember 2020 11:06
Alle Antworten
-
Hi,
was genau geht denn nicht?
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET (2001-2018)
https://www.asp-solutions.de/ - IT Beratung, Softwareentwicklung, Remotesupport -
Hallo Danke erst eimal für die Antwort.
Das script was ich oben habe geht nur mit eine listbox. Das heist in der listbox sind die E-Mails
die mann erhalten hat. Beim markieren einer E_Mail wir sie im Browser angezeigt.
Nun aber möchte ich das gleiche mit einer listview machem klappt auch soweit aber die E-Mails werden
nicht im Browser angezeigt wenn ich auf einer E-Mail klicke.
- Bearbeitet romeo1111111 Samstag, 28. November 2020 13:15
-
die E-Mails werden nicht im Browser angezeigt wenn ich auf einer E-Mail klicke.
und was passiert ansonsten? Kommt eine Fehlermeldung? Falls ja, welche? (Bitte die exakte und vollständige Fehlermeldung inkl. der Codezeile, die den Fehler auslöst, posten)
Wie sieht der Code für deinen Versuch mit der ListView aus? Genauso wie Du das ListBox Ereignis SelectedIndexChanged für die Anzeige gewählt hast musst Du dir das passende Ereignis aus der ListView raussuchen und den Code dann dort hinterlegen.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET (2001-2018)
https://www.asp-solutions.de/ - IT Beratung, Softwareentwicklung, Remotesupport -
Es kommt keine Fehlermeldung es zeigt die E-Mail nicht an
Ich denk mal es liegt an dieses hier
For Each oneMessage As EmailMessage In _messages If oneMessage.From.ToString.Equals(ListBox1.SelectedItem.ToString) Then Me.txtFrom.Text = oneMessage.From Dim url As Uri = New System.Uri(oneMessage.CreateHTMLFile()) newBrowserControl.Url = url newBrowserControl.Update() End If Next
-
Das ist der script nach dem ich die Listview erstellt habe sie hat auch Den namen ListBox1
For Each oneMessage As EmailMessage In _messages
If oneMessage.From.ToString.Equals(ListBox1.SelectedItem.ToString) Then
Me.txtFrom.Text = oneMessage.From
Dim url As Uri = New System.Uri(oneMessage.CreateHTMLFile())
newBrowserControl.Url = url
newBrowserControl.Update()
End If
NextListBox1.SelectedItem.ToString ist der Fehler und ListBox1.SelectedIndices.ToString) /ListBox1.SelectedItems.ToString gehen auch nicht Danke
-
IMO müsste es bei einem Listview eigentlich wie folgt lauten:
For Each oneMessage As EmailMessage In _messages If oneMessage.From.ToString.Equals(lvwMail.SelectedItems(0).Text) Then Me.txtFrom.Text = oneMessage.From Dim url As Uri = New System.Uri(oneMessage.CreateHTMLFile()) newBrowserControl.Url = url newBrowserControl.Update() End If Next
Wobei ich die Bezeichnung auch ändern würde Listbox <> Listview.
- Als Antwort vorgeschlagen Dimitar DenkovMicrosoft contingent staff, Administrator Donnerstag, 3. Dezember 2020 09:02
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Mittwoch, 23. Dezember 2020 11:06
-
Hi,
LvwMail wäre die Referenz auf dein ListView Control, wenn Du das denn so benannt hast.
ListBox1 verweist auf dein ListBox Control, Du sagtest ja aber, dass Du das mit einer ListView machen willst.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET (2001-2018)
https://www.asp-solutions.de/ - IT Beratung, Softwareentwicklung, Remotesupport- Als Antwort vorgeschlagen Dimitar DenkovMicrosoft contingent staff, Administrator Donnerstag, 3. Dezember 2020 09:02
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Mittwoch, 23. Dezember 2020 11:06
-
Hallo ich schick dir mal ein paar Bilder mit.
das erste ist mit der listbox
das zweite ist mit eine listview
Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged If Me.Controls("WebBrowser") IsNot Nothing Then Dim browser As Control = Me.Controls("WebBrowser") Me.Controls.Remove(browser) browser.Dispose() End If Dim newBrowserControl As New WebBrowser With newBrowserControl .Size = New Size(Me.Size.Width - 350, Me.Size.Height - 100) .Location = New Point(310, 40) .AllowNavigation = False .ScriptErrorsSuppressed = False .IsWebBrowserContextMenuEnabled = False .WebBrowserShortcutsEnabled = True .ScrollBarsEnabled = True .Name = "WebBrowser" .Anchor = AnchorStyles.Bottom Or AnchorStyles.Left Or AnchorStyles.Right Or AnchorStyles.Top End With Me.Controls.Add(newBrowserControl) For Each oneMessage As EmailMessage In _messages If oneMessage.From.ToString.Equals(ListBox1.SelectedItem.ToString) Then Me.txtFrom.Text = oneMessage.From Dim url As Uri = New System.Uri(oneMessage.CreateHTMLFile()) newBrowserControl.Url = url newBrowserControl.Update() End If Next End Sub
Vieleicht stimmt etwas mit demPrivate Sub ListBox1_SelectedIndexChanged
nicht
-
Hi,
was willst Du laufend mit der ListBox?
Du schreibst doch, Du willst es mit einer ListView machen. Dann schmeiß die ListBox komplett raus und bau eine ListView ein. So kommst Du (und wir auch) nur komplett durcheinander, weil Du irgendwelche Codeteile, die gar nichts miteinander zu tun haben, miteinander verbinden willst.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET (2001-2018)
https://www.asp-solutions.de/ - IT Beratung, Softwareentwicklung, Remotesupport -
Hallo
Du wirst nicht drum herumkommen, dir Grundlagen beizubringen, dazu gehört auch, den grundlegenden Unterschied zwischen ListBox und ListView zu verstehen.
Du schreibst lediglich, das du Probleme hast, auf das SelectedItem zuzugreifen. Das "befüllen" einer ListView ist aber auch ein anderer Vorgang, wie bei einer ListBox. Übrigens gibt es bei einer ListView kein "SelectedItem", es ist immer eine Collection (SelectedItems).
Also, so wie es Stefan Falz schon schrieb: weg mit der ListBox. Und Ahmed Martens hat dir doch schon eine Lösung präsentiert..
Und von mir auch noch ein kleines Beispiel:
Private Sub FillListView() listView1.View = View.Details listView1.LabelEdit = True listView1.AllowColumnReorder = True listView1.CheckBoxes = True listView1.FullRowSelect = True 'listView1.MultiSelect = False listView1.GridLines = True listView1.Sorting = SortOrder.Ascending Dim item1 As New ListViewItem("item1", 0) item1.Checked = True item1.SubItems.Add("1") item1.SubItems.Add("2") item1.SubItems.Add("3") Dim item2 As New ListViewItem("item2", 1) item2.SubItems.Add("4") item2.SubItems.Add("5") item2.SubItems.Add("6") Dim item3 As New ListViewItem("item3", 0) item3.Checked = True item3.SubItems.Add("7") item3.SubItems.Add("8") item3.SubItems.Add("9") listView1.Columns.Add("Item Column", -2, HorizontalAlignment.Left) listView1.Columns.Add("Column 2", -2, HorizontalAlignment.Left) listView1.Columns.Add("Column 3", -2, HorizontalAlignment.Left) listView1.Columns.Add("Column 4", -2, HorizontalAlignment.Center) listView1.Items.AddRange(New ListViewItem() {item1, item2, item3}) End Sub Private Sub listView1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles listView1.SelectedIndexChanged Dim selectedItems = listView1.SelectedItems If selectedItems.Count > 0 Then Me.Text = selectedItems(0).Text + "-" + selectedItems(0).SubItems(1).Text + "-" + selectedItems(0).SubItems(2).Text Else Me.Text = "Empty" End If End Sub
Gruß
Stefan Krömer
Freiberufler im Bereich Softwareentwicklung Von der PLC und Robotik zu VB.NET & C#, vorrangig WPF und UWP
- Als Antwort vorgeschlagen Dimitar DenkovMicrosoft contingent staff, Administrator Donnerstag, 3. Dezember 2020 09:02
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Mittwoch, 23. Dezember 2020 11:06