Benutzer mit den meisten Antworten
ListView suchen mit treeView

Frage
-
Hallo alle zusammen!
Ich habe ein Problem. Und zwar habe ich eine listView mit 6 Spalten... Links davon habe ich einen treeView mit verschiedenen Elementen.
Problem:
Das treeView beeinhaltet Kategorien, bsow. Beruf, Gesundheit, usw. Diese Kategorien sind unter anderem auch in der listView in der 5. Spalte vorhanden. Nun soll das treeView Element, was selektiert wurde, in der 5.Spalte der listView gesucht werden und dann hervorgehoben werden. Sozusagen, schnelle Suche von Kategorien. Soweit alles verstanden?
Hier ein Bild:
https://postimg.cc/2bDJ5Cp6Habt ihr Ideen?
Vielen Dank,
Henrik
Antworten
-
Hi Henrik,
nachfolgend eine kleine Demo, wie man Deine Frage lösen könnte:using System; using System.Drawing; using System.Windows.Forms; namespace WindowsFormsApp1 { public partial class Form41 : Form { public Form41() { InitializeComponent(); } private TreeView tv = new TreeView() { Dock = DockStyle.Left }; private ListView lv = new ListView() { Dock = DockStyle.Fill }; private void Form41_Load(object sender, EventArgs e) { this.Controls.AddRange(new Control[] { lv, tv }); this.FillTreeView(); this.tv.AfterSelect += Tv_AfterSelect; this.FillListView(); } private void Tv_AfterSelect(object sender, TreeViewEventArgs e) { MyTreeNode node = tv.SelectedNode as MyTreeNode; if (node != null) foreach (MyItem item in this.lv.Items) item.BackColor = (item.Kat == node.Kat) ? Color.Red : Color.White; } private void FillTreeView() { for (int i = 1; i < 10; i++) this.tv.Nodes.Add(new MyTreeNode() { Text = $"Knoten {i}", Kat = i }); } private void FillListView() { for (int i = 1; i < 10; i++) this.lv.Items.Add(new MyItem() { Text = $"Item {i}", Kat = i }); } internal class MyTreeNode : TreeNode { internal int Kat { get; set; } } internal class MyItem : ListViewItem { internal int Kat { get; set; } } } }
--
Viele Grüsse
Peter Fleischer (ehem. MVP für Developer Technologies)
Meine Homepage mit Tipps und Tricks- Als Antwort vorgeschlagen Ivan DragovMicrosoft contingent staff, Moderator Donnerstag, 29. November 2018 09:02
- Als Antwort markiert Ivan DragovMicrosoft contingent staff, Moderator Dienstag, 11. Dezember 2018 08:31
Alle Antworten
-
Hi Henrik,
nachfolgend eine kleine Demo, wie man Deine Frage lösen könnte:using System; using System.Drawing; using System.Windows.Forms; namespace WindowsFormsApp1 { public partial class Form41 : Form { public Form41() { InitializeComponent(); } private TreeView tv = new TreeView() { Dock = DockStyle.Left }; private ListView lv = new ListView() { Dock = DockStyle.Fill }; private void Form41_Load(object sender, EventArgs e) { this.Controls.AddRange(new Control[] { lv, tv }); this.FillTreeView(); this.tv.AfterSelect += Tv_AfterSelect; this.FillListView(); } private void Tv_AfterSelect(object sender, TreeViewEventArgs e) { MyTreeNode node = tv.SelectedNode as MyTreeNode; if (node != null) foreach (MyItem item in this.lv.Items) item.BackColor = (item.Kat == node.Kat) ? Color.Red : Color.White; } private void FillTreeView() { for (int i = 1; i < 10; i++) this.tv.Nodes.Add(new MyTreeNode() { Text = $"Knoten {i}", Kat = i }); } private void FillListView() { for (int i = 1; i < 10; i++) this.lv.Items.Add(new MyItem() { Text = $"Item {i}", Kat = i }); } internal class MyTreeNode : TreeNode { internal int Kat { get; set; } } internal class MyItem : ListViewItem { internal int Kat { get; set; } } } }
--
Viele Grüsse
Peter Fleischer (ehem. MVP für Developer Technologies)
Meine Homepage mit Tipps und Tricks- Als Antwort vorgeschlagen Ivan DragovMicrosoft contingent staff, Moderator Donnerstag, 29. November 2018 09:02
- Als Antwort markiert Ivan DragovMicrosoft contingent staff, Moderator Dienstag, 11. Dezember 2018 08:31
-
Hi Klaus,
mein gezeigtes WindowsForms Beispiel basiert bei mir auf dem Framework 4.7. Hast Du das Beispiel unverändert in den Codeteil einer leeren Form eines Windows Forms Projektes kopiert und gestartet? Wenn nein, da zeige mal die Veränderungen/Anpassungen/Abweichungen. tv ist in meinem Beispiel ein TreeView und da kann keine Fehler wegen fehlendem SelectedNode in einem ListView kommen.--
Viele Grüsse
Peter Fleischer (ehem. MVP für Developer Technologies)
Meine Homepage mit Tipps und Tricks