webForumDet fria alternativet

Variabel tappar värde

.NET

0 svar · 346 visningar · startad av saw

Medlem sedan mars 20011 880 inlägg
Frågan#1

Jag har el treeView som innehåller förljande noder

node.Nodes.Add("MusicTransposer");
                node.Nodes.Add("MappBuilder");
                node.Nodes.Add("CheckStyle");

sen

 public string sText { get; set; }//här är jag osäker på om jag gör rätt...

Noderna har kryssrutor. När man klickar på en nod så kommer information
till en label och path till en picturebox.
Jag har också

private void checkTreeView()
        {
            foreach (TreeNode node in treeView1.SelectedNode.Nodes)
            {
                if (node.Checked == true)
                    sText += node.Text + " ";
            }
        }
private void HandleClick(TreeNode startNode, bool check, int level)
        {
            Application.DoEvents();
            if (startNode.Parent != null && level > 0)
            {
                startNode.Parent.Checked = check;
                startNode.Parent.Tag = true;
                HandleClick(startNode.Parent, check, level);// send same level
                startNode.Parent.Tag = false;
            }
            if (startNode.Level >= level)
            { 
                foreach (TreeNode child in startNode.Nodes)
                {
                    if (child.Tag == null ||
                        !(bool)child.Tag)
                    {
                        child.Checked = check;
                        child.Tag = true;
                        HandleClick(child, check, level); 
                        child.Tag = false;
                    }
                }
                
            }
            Application.DoEvents();
       }

        private void treeView1_AfterCheck(object sender, TreeViewEventArgs e)
        {
            Application.DoEvents();
            this.treeView1.AfterCheck -= treeView1_AfterCheck;
            HandleClick(e.Node, e.Node.Checked, e.Node.Level);
            this.treeView1.AfterCheck += treeView1_AfterCheck;
            bool parentChecked = this.treeView1.SelectedNode.Checked;
            if (parentChecked == true)
                bNext.Enabled = true;
            else
                bNext.Enabled = false;
            Application.DoEvents();
        }

        private void treeView1_Click(object sender, EventArgs e)
        {
            Application.DoEvents();
            sText = "";
            foreach (TreeNode node in treeView1.SelectedNode.Nodes)
            {
                if (node.Checked == true)
                  sText+=node.Text +" ";  
            }
            Application.DoEvents();
        }
private void bNext_Click(object sender, EventArgs e)
        {
            Form fm4 = new Form4(sText);
            this.Hide();
            Application.DoEvents();
            fm4.Show();
        }

Det som är tänkt att hända är att för varje checkad node, så skall det
läggas till i sText och när man klickar på bNext så skall sText följa med till
nästa form. Detta fungerar kanon, om man inte klickar på formerna, gör man
det verkar det som det tömmer sText.
Vad tror ni???

264 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
118 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)