Laden...

TreeView.Checked??

Erstellt von myBig? vor 16 Jahren Letzter Beitrag vor 16 Jahren 1.477 Views
M
myBig? Themenstarter:in
241 Beiträge seit 2005
vor 16 Jahren
TreeView.Checked??

Hallo zusammen,

komme im moment nicht weiter und ich glaube es ist auch gar nicht so schwer, aber vielleicht kann mir einer weiterhelfen.

Ich habe ein TreeView mit zwei Nodes(Teile und Projekt) unter Teile sind dann verschiedene Name der Teile aufgelistet ebenso bei den Projekten.

Nun möchte ich gerne, den Name der jeweiligen Teile bzw. Projekte in meinem DataGridView.Rows[?].HeaderCell.Value = e.Node.Text anzeigen lassen.

Mache ich es mit einem Projekt dann klappt es auch wunderbar. Allerdings soll es auch bei mehreren ausgewählten Projekten funktionieren, da habe ich hier etwas gefunden mit Checked. Und das ist der Punkt an dem ich nicht weiter komme, stehe vollkommen auf den schlau.

Hier der Code für ein Projekt:


private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
        {
            if (e.Node.IsSelected == true)
            {
                dataGridView1.Rows[0].HeaderCell.Value = e.Node.Text;
            }
        }

Wollte eigentlich die gecheckten Nodes zählen und dann über eine for-schleife die gecheckten Nodes der Datagridview zuordnen. Aber irgendwie klappt es nicht.

Hat vielleicht jemand ein Tipp für mich bzw. mach ich was falsch?

MfG

_
83 Beiträge seit 2007
vor 16 Jahren

Hallo,

Statt Node.IsSelected Node.Checked verwenden

_ms

M
myBig? Themenstarter:in
241 Beiträge seit 2005
vor 16 Jahren

Schonmal danke für die schnelle Antwort, aber leider hilft es nicht ganz so dabei mein Problem zu lösen, kann auch sein das ich mich nicht richtig ausgedrückt habe.

Ich möchte gerne das alle Nodes die ich per Checkboxes gecheckt habe in meinem **DataGridView.rows[].headerCell.value = e.node.text **angezeigt wird.Für jedes Projekt eine row im DataGridview.

Vielleicht sitze ich auch schon zu lange da drann heute, dass ich nicht drauf komme, aber vielleicht kann mir ja doch noch jemand helfen bzw ein Tipp geben.

Werde auf jeden Fall noch weiter versuchen und nachlesen.

MfG

W
558 Beiträge seit 2006
vor 16 Jahren

weiß nicht ob du das meinst...


public void CopyCheckedTreeNodesIntoSomewhere(TreeNodeCollection tnc)
{
  foreach (TreeNode tn in tnc)
  {
    if (tn.Checked)
    {
      // Dieser tn ist "gechecked"
    }
    if (tn.Nodes != 0)
    {
      //rekursiv für Children aufrufen
      this.CopyCheckedTreeNodesIntoSomewhere(tn);
    }
  }
}

So ungefähr müsste es gehen, nicht getestet!

webstarg

[Edit]Geschwungene Klammer verschoben; Code etwas eingerückt.[/Edit]

M
myBig? Themenstarter:in
241 Beiträge seit 2005
vor 16 Jahren

Hi webstarg,

das werde ich mal testen und versuchen.

Aber sollte noch jemand ein Tipp für mich hat, wäre ich darüber natürlich auch sehr dankbar🙂

MfG

M
myBig? Themenstarter:in
241 Beiträge seit 2005
vor 16 Jahren

hi web,

so habe es jetzt hinbekommen, danke schön für den Tipp und hilfe

Hier der Code:


public void CheckedNode(TreeNodeCollection tnc)
        {
            int i = 0;
            foreach (TreeNode node in tnc)
            {
                if (node.Checked)
                {
                    dataGridView1.Rows.Add();
                    dataGridView1.Rows[i].HeaderCell.Value = node.Text;
                    i++;
                }
                
                this.CheckedNode(node.Nodes);
            }
        }

MfG