Salut,
la methode refresh me renvoit une exception
Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
En fait je veux rafraichir le contenu d'un dossier, voici mon code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
 internal void pasteTestSet(string ziel,TDConnection TD,string basline)
     {
         SubjectNode pasteSubject = null;
         
             // if test is a Review
             if (TestName.StartsWith("R"))
             {

                 string[] n = basline.Split(' ');
                 Boolean search = false;
                 aSource = _SourceFolder.Split(' ');
                 paste = true;
                 treeMng = (TreeManager)TD.TreeManager;

         pasteSubject = (SubjectNode)treeMng.get_NodeByPath(@"Subject\04_Review")
                  List list = pasteSubject.NewList();
                     Boolean s = true;
                     foreach (SysTreeNode de in list)
                     {

                         //_de = de;
                         //prüfen ob BL 1 zum Beispiel in Tesplan existier, wenn ja dann ist paste true 
                         //if (s)
                         {
                             if (!(de.Name.Equals("BL  " + aSource[2])))
                             {

                                 paste = false;
                                 _de = de;

                             }
                             else
                             {
                                 //s = false;
                                 paste = true;

                                 _de = de;
                                 try
                                 {
                                     List lt = de.NewList();


                                     pruefen = false;
                                     foreach (SysTreeNode e in lt)
                                     {

                                         //prüfen ob den test schon in BL1 drin ist
                                         if (e.Name.Equals(_TestName))
                                         {
                                             pruefen = true;
                                             MessageBox.Show("copy in " + TD.ProjectName + "    pleased do it manual");

                                             break;


                                         }
                                         else
                                         {
                                             pruefen = false;

                                         }
                                     }
                                 }
                                 catch { }
                                 break;
                             }

                         }
                         //_de = de;
                     }

                     foreach (SysTreeNode ee in list)
                     {
                         //Pruefen ob Baseline 2.0 in TestPlan existiert


                         if (ee.Name.Equals("BL  " + n[2]))
                         {

                             search = true;
                             break;
                         }
                         else
                         {
                             search = false;
                         }
                     }
                
                 //erzeugt baseline 2 , da die nicht existiert
                 if (search == false)
                 {
                     QC = new QCHelper();
                     //_de.AddNode(@"Subject\04_Review" + @"BL  " + n[2]);
                     QC.AddTestPlanFolder(@"04_Review\BL  " + n[2]);

                     //subject.AddNode(@"Subject\04_Review" + @"\BL  " + n[2]);
                 }

             }
             // the Interface don't copy if the Test already exist
             if (pruefen == false)
             {
                 ISupportCopyPaste ZielIscp;

                 TestSetFactory testSetF = (TestSetFactory)TD.TestSetFactory;
                 ZielIscp = (ISupportCopyPaste)testSetF;

                 MessageBox.Show(TD.ProjectName);
                 ZielIscp.PasteFromClipBoard(clipboard, ziel, 0, 1);
             }
             if (TestName.StartsWith("R"))
             {
                 //try
                 //{
                pasteSubject.Refresh(); 
                _de.Refresh(); 
                 //}
                 //catch { }

             }
_de est déclaré comme globale variable. Dans une autre methode j'essaye encore de rafraichir mes dossier
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
]//subject.Refresh();
                if (TestName.StartsWith("R"))
                {
                    //try
                    //{
                    //    subject.Refresh();
                    //}
                    //catch { }
                    string[] b = basline.Split(' ');
 
                    if (paste == false)
                    {
                        if (pruefen == false)
                        {
                            //try
                            //{
                            //    subject.Refresh();
                            //}
                            //catch { }
                            SysTreeNode nd = (SysTreeNode)treeMng.get_NodeByPath(@"Subject\04_Review" + @"\BL  " + aSource[2]);
                            nd.Refresh();
                            try
                            {
 
                                List s = nd.NewList();
                                foreach (SysTreeNode o in s)
                                {
                                    //MessageBox.Show(o.Name);
                                    if (o.Name.Equals(_TestName))
                                    {
                                        //ISupportCopyPaste iscp;
                                        //MessageBox.Show(con.ProjectName);
                                        // TestSetFactory testSetF = (TestSetFactory)TD.TestSetFactory;
 
                                        // iscp = (ISupportCopyPaste)testSetF;
                                        //string source = o.NodeID.ToString();
                                        // clipboard = iscp.CopyToClipBoard(source, 0, "");
 
                                        SubjectNode thesubject = (SubjectNode)treeMng.get_NodeByPath(@"Subject\04_Review" + @"\BL  " + b[2]);
                                        //MessageBox.Show(subject.Name);
                                        // string ziel = subject.NodeID.ToString();
                                        // iscp.PasteFromClipBoard(clipboard, ziel, 0, 1);
 
                                        SubjectNode sube = (SubjectNode)o;
 
                                        sube.Move(thesubject);
 
                                        break;
                                    }
                                    else { }
 
                                }
                            }
                            catch { }
                        }
                    }
                    // vor der Kopie war der Test nicht im BL 1 aber jetzt nach der Kopie da sein, dieser Test in BL 2 verschieben
                    if (pruefen == false)
                    {
                        try
                        {
                            _de.Refresh();
                            List s = _de.NewList();
 
                            foreach (SysTreeNode o in s)
                            {
                                //MessageBox.Show(o.Name);
                                if (o.Name.Equals(_TestName))
                                {
                                    //ISupportCopyPaste iscp;
                                    //MessageBox.Show(con.ProjectName);
                                    // TestSetFactory testSetF = (TestSetFactory)TD.TestSetFactory;
 
                                    // iscp = (ISupportCopyPaste)testSetF;
                                    //string source = o.NodeID.ToString();
                                    // clipboard = iscp.CopyToClipBoard(source, 0, "");
 
                                    SubjectNode mysubject = (SubjectNode)treeMng.get_NodeByPath(@"Subject\04_Review" + @"\BL  " + b[2]);
                                    //MessageBox.Show(subject.Name);
                                    // string ziel = subject.NodeID.ToString();
                                    // iscp.PasteFromClipBoard(clipboard, ziel, 0, 1);
 
                                    SubjectNode sube = (SubjectNode)o;
 
                                    sube.Move(mysubject);
 
                                    break;
                                }
                                else { }
                            }
                        }
                        catch { }
                    }
                }
                else { };
 
        }
 
    }
tout ceci s'execute en fait après que l'on ait cliqué sur in button, au premier click tout fonctionne bien, le rafraichissement fonctionne mais au second j'ai l'exception citée plus haut.

Mon second problème se situe au niveau des comboxBox. dans l'évènement formclosed j'efface le contenu du comboBox.Test
Code : Sélectionner tout - Visualiser dans une fenêtre à part
comboBox.Text= String.empty
mais lorsque je rapelle ma forme ( tjr via un button) le text du comboBox réapparait.

Merci d'avance pout tout éventuelle aide