Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Πρόβλημα με προσθήκη nodes σε treeview.

Îåêßíçóå áðü ôï ìÝëïò M@jestic. Τελευταία δημοσίευση από το μέλος object+ στις 18-12-2009, 03:19. Υπάρχουν 24 απαντήσεις.
Σελίδα 1 από 2 (25 εγγραφές)   1 2 >
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  13-11-2009, 16:35 55170

    Πρόβλημα με προσθήκη nodes σε treeview.

    Καλησπέρα,

    ειμαι καινουργιος στο forum και γενικοτερα στην c# οποτε θα ζητήσω την βοηθεια σας μιας και δεν εβγαλα ακρη μετα απο πολυ ψαξιμο σε forums.

    εχω μια συνάρτηση η οποια προσθέτει χρήστες σε ενα δέντρο. οταν ενας χρήστης μπαινει στο συστημα για πρωτη φορα η συναρτηση αυτη δε λειτουργει και μπαινει σε exception. Συγκεκριμενα οταν συνδεεται ενας χρηστης για πρωτη φορα (την δευτερη μπαινει κανονικα χωρις προβλημα) κανει αποσυνδεση(μιλαμε για διαφορετικα clients που εχει καθε χρηστης και ολα αυτα συνδεεονται μεσω ενος server) τους προηγουμενους χρηστες.

    θα δωσω και το κωδικα της συναρτησης για να βοηθησει περισσοτερο.

    Αν πρεπει να δωσω περισσοτερες πληροφοριες σχετικα με το προγραμμα για καλυτερη κατανοηση του προβληματος, απλα πειτε μου σχετικα.

    Ευχαριστω πολυ για το χρονο σας!

    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
     
    private void Add_Player(string u_email, string u_name)
            {
                // Elegxei an o xristis mpainei gia prori fora sto paixnidi.
                bool registered = false;
                foreach (UserInfo ui in UsersList)
                {
                    if (ui.uEmail == u_email)
                    {
                        registered = true;
                        break;
                    }
                }
    
                // An einai proti fora, ton prosthetei stin lista me tous active plyers.
                if (registered == false && u_name != "Teacher")
                {
                    UserInfo userInfo = new UserInfo();
                    userInfo.uEmail = u_email;
                    userInfo.uName = u_name;
                    userInfo.uPosition = 1;
                    userInfo.uScore = 0;
                    userInfo.uID = UsersList.Count + 1;
                    UsersList.Add(userInfo);
    
    
                    try
                    {
                        TreeNode newNode = new TreeNode(u_name, 1, 1);
    
                        treeView1.Nodes[0].Nodes.Add(newNode);
    
                        /*
                         to problima parousiazete edw kai mpainei parakatw sto exception,auto mono ti prwth fora pou tha sundethei o user.ti deuteri fora tha mpei kanonika alla an sundethei allos user gia prwth fora tha tous petaxei pali tous upoloipous.
                         */
    
                    }
                    catch (Exception)
                    {
                        MessageBox.Show(resource.GetString("error") + "\r\n" + resource.GetString("restart"),
                            "Board Games : " + userName, MessageBoxButtons.OK, MessageBoxIcon.Error);
                        ask_to_exit = false;
                        Application.Restart();
                    }
    
                    // Enimeronei tis metavlites.
                    activeplayers++;
                    position[activeplayers - 1] = 1;
                    score[activeplayers - 1] = 0;
                    Draw_TheRest();
                    Draw_Pioni(position[player - 1]);
                }
            }

  •  14-11-2009, 11:59 55173 σε απάντηση της 55170

    Απ: Πρόβλημα με προσθήκη nodes σε treeview.

    Πρώτα από όλα ο exception handler σου αφήνει ένα σωρό πληροφορίες (error message,stack trace κτλ) αναξιοποίητες.Πιθανότατα οι πληροφορίες αυτές να ήταν υπεραρκετές ώστε να διορθώσεις το πρόβλημά σου.

    Έπειτα με το να γράφεις:

    treeView1.Nodes[0].Nodes.Add(newNode);

    Λες στο πρόγραμμα να προσθέσει ένα node στο tree ως child ενός άλλου node που λειτουργεί ως root(Node[0]).Αυτό το root node το έχεις προσθέσει ήδη σε άλλο σημείο του προγράμματος;Αν όχι το πρόγραμμα αναμενόμενα "σκάει".

  •  15-11-2009, 19:45 55190 σε απάντηση της 55173

    Απ: Πρόβλημα με προσθήκη nodes σε treeview.

    Έχει προστεθεί στο πρόγραμμα το root αυτό....γιατί ο χρήστης μπαίνει σαν user σε ένα μάθημα.root δηλαδή είναι το μάθημα.

    Πως ακριβώς μπορώ να αξιοποιήσω δηλαδή τον handler και τις πληροφορίες;

    Υπάρχει περίπτωση να χρειάζεται κάποια μέθοδος ανανέωσης του δέντρου έτσι ώστε να μη χτυπάει κάθε φορά που προσπαθεί να μπει ένας νέος χρήστης;
  •  15-11-2009, 20:16 55193 σε απάντηση της 55190

    Απ: Πρόβλημα με προσθήκη nodes σε treeview.

    M@jestic:

    Πως ακριβώς μπορώ να αξιοποιήσω δηλαδή τον handler και τις πληροφορίες;

    try
    {
    //Do something that might cause an exception
    }
    catch(Exception e)
    {
    //e.Trace :η stack trace -μπορείς να δεις ποια συνάρτηση κλήθηκε,ποιος την κάλεσε κτλ
    //e.Message: Το error message που συνήθως είναι πολύ κατατοπιστικό
    string error=String.Format("Error occured:{1}/r/nStack Trace: /r/n {2}",e.Message,e.Trace);
    MessageBox.Show(error);
    
    Αυτές οι πληροφορίες είναι απείρως πιο χρήσιμες από ένα κοινό error message,ιδίως όταν βγει σε release μορφή και κάποιος από τους χρήστες του αντιμετωπίσει κάποιο πρόβλημα 
    και θα πρέπει να σου εξηγήσει τι συνέβη.
    Αφού από ότι γράφεις το πρόγραμμα κρασάρει όταν προσθέτεις το node στο tree μπορούμε να αφήσουμε στην άκρη πιθανά προβλήματα με το authentication και να συγεντρωθούμε στο 
    TreeView σου-εφόσον είσαι σίγουρος ότι εκεί σου πετάει το exception και μόνο.Το root element εμφανίζεται κανονικά πριν μπει καινούριος χρήστης;Επίσης το tree εμφανίζεται σωστά 
    τη δεύτερη φορά που ο χρήστης μπαίνει χωρίς πρόβλημα;Τέλος όλα τα image indices είναι σωστά;
     
  •  15-11-2009, 22:14 55197 σε απάντηση της 55193

    Απ: Πρόβλημα με προσθήκη nodes σε treeview.

    μετα απο debugging κτλ το προβλημα ειναι στα threads.....

    μου βγαζει το παρακατω μυνημα

    "action being performed on this control is being called from the wrong thread. Marshal to the correct thread using control.invoke or control.beginInvoke to perform this action"

    τωρα μαλλον πρεπει να χρησιμοποιησω την begininvoke καμια οδηγια για το πως μπορω να το κανω αυτο; δηλαδη κατι σχετικο να διαβασω για να ενημερωθω ή καποιο παραδειγμα;

    ευχαριστω παρα πολυ!


  •  16-11-2009, 02:17 55201 σε απάντηση της 55197

    Απ: Πρόβλημα με προσθήκη nodes σε treeview.

    Κάτι μου λέει ότι πλησιάζεις στην πηγή του προβλήματος...Εκτελείται η AddPlayer σε διαφορετικό thread από το UI thread;Τα Windows Forms control δεν είναι thread safe,γι'αυτό και όταν θες να καλέσεις μια μέθοδό τους από άλλο thread χρειάζεσαι να κάνεις χρήση της Invoke ή της BeginInvoke.Για να το κάνεις αυτό θα περάσεις είτε στη μία είτε στην άλλη τον delegate μιας συνάρτησης που εκτελείται στο thread όπου δημιουργήθηκε το control.Δες ένα παράδειγμα:

    TreeView treeView;//το tree control
    //Η delegate που θα χρησιμοποιήσουμε ως παράδειγμα
    private delegate void MyDelegate(Userinfo userInfo);
    private MyDelegate myDelegate;
    
    //η παρακάτω συνάρτηση εκτελείται σε ΔΙΑΦΟΡΕΤΙΚΟ thread από αυτό που δημιουργήθηκε το tree
    //view οπότε χρειάζεται η BeginInvoke
    private voidAddPlayer()
    {
    UserInfo newUserInfo=new UserInfo();
    userInfo.uEmail = "[email protected]";
    userInfo.uName = "John Doe";
    userInfo.uPosition = 1;
    userInfo.uScore = 0;
    userInfo.uID = 0;
    
    myDelegate=new MyDelegate(UIThreadMethod);
    //Η BeginInvoke δέχεται ως δεύτερο όρισμα μια array από Obects,ίδια με τις παραμέτρους 
    // της delegate
    treeView.BeginInvoke(myDelegate,new Object[]{userInfo}); 
    }
    
    //η παρακάτω συνάρτηση εκτελείται στο ΙΔΙΟ thread με αυτό που δημιουργήθηκε το tree view
    private void UIThreadMethod(UserInfo userInfo)
    {
    TreeNode node=new TreeNode(userInfo.uName,1,1);
    treeView.Nodes[0].Nodes.Add(node);
    }
    Δεν είναι τίποτα υπερπολύπλοκο από ότι βλέπεις.Τέλος ποια είναι η διαφορά της Invoke από την BeginInvoke;Η BeginInvoke επιστρέφει αμέσως,σε αντίθεση με την Invoke που επιστρέφει 
    μόνο όταν τελειώσει  τη δουλειά της η συνάρτηση.Αν λοιπόν είναι αναγκαίο να τελειώσει η συνάρτηση χειρισμού τη δουλεία της προτού συνεχίσεις χρησιμοποίησε την Invoke.Αν σε βολεύει
    να επιστρέψει αμέσως και να μην χάσεις χρόνο περιμένοντας χρησιμοποίησε την BeginInvoke.
    Ότι απορίες έχεις εδώ είμαστε και ελπίζω αυτή να είναι η λύση στο πρόβλημά σου.
  •  19-11-2009, 17:59 55301 σε απάντηση της 55201

    Απ: Πρόβλημα με προσθήκη nodes σε treeview.

    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
     
             TreeView treeview;//to tree control
            //H delegate poy 8a xrisimopoihsoume
            private delegate void MyDelegate(UserInfo userInfo);
            private MyDelegate myDelegate;
    
            //H parakatw sunartisi ekteleitai se diaforetiko thread apo auto pou dimiourgithike to tree
            //view opote xrisimopoioume tin BeginInvoke
            // Add Player --------------------------------------------------------------------------------
            // Prosthetei sti lista, enan xristi pou mpainei gia proti fora.
            private void Add_Player(string u_email, string u_name)
            {
    
                // Elegxei an o xristis mpainei gia prori fora sto paixnidi.
                bool registered = false;
                foreach (UserInfo ui in UsersList)
                {
                    if (ui.uEmail == u_email)
                    {
                        registered = true;
                        break;
                    }
                }
    
                // An einai proti fora, ton prosthetei stin lista me tous active plyers.
                if (registered == false && u_name != "Teacher")
                {
                    UserInfo userInfo = new UserInfo();
                    userInfo.uEmail = u_email;
                    userInfo.uName = u_name;
                    userInfo.uPosition = 1;
                    userInfo.uScore = 0;
                    userInfo.uID = UsersList.Count + 1;
                    UsersList.Add(userInfo);
    
                    // Enimeronei tis metavlites.
                    activeplayers++;
                    position[activeplayers - 1] = 1;
                    score[activeplayers - 1] = 0;
                    Draw_TheRest();
                    Draw_Pioni(position[player - 1]);
    
    
                    myDelegate = new MyDelegate(UIThreadMethod);
                    /* H begininvoke dexete ws deutero orisma mia array apo objects,idia me parametrous tis delegate*/
                    treeview.BeginInvoke(myDelegate, new Object[] { userInfo });
                }
            }
             
                //H parakatw sunartisi ekteleitai sto idio thread me auto pou dimiourgithike to treeview
                private void UIThreadMethod (UserInfo userInfo)
                {
    
                   
                                     
                        
                        TreeNode newNode = new TreeNode(userInfo.uName,1,1);
    
                        treeView1.Nodes[0].Nodes.Add(newNode);             
                                                           
                          
            }
    Ευχαριστω για το παράδειγμα πραγματικα μου έδωσε μια πολυ καλη εικονα του τι κανω...

    να σας ρωτησω κάτι ακόμα...προσπάθησα να εφαρμόσω όλο αυτό. Αλλα κάπου κάτι δε κανω σωστα. Δείτε λιγο παλι οπως το εφαρμοσα.

    Οταν κανω build μου βγαζει σαν warning:
     "Warning    1    Field 'BGClient.BGClientForm.treeview' is never assigned to, and will always have its default value null "

    και φυσικά το πρόβλημα δεν επιλύθηκε γιατι κατι δεν κανω σωστα....
    καμια ιδεα darklynx; Ευχαριστω για το χρόνο σου!



  •  20-11-2009, 01:56 55328 σε απάντηση της 55301

    Απ: Πρόβλημα με προσθήκη nodes σε treeview.

    Χαίρομαι που σε βοήθησε το παράδειγμά μου αλλά δεν ήταν ολοκληρωμένο project παρά μόνο απόσπασμα κώδικα,υποτίθεται το tree control δημιουργείται κάπου αλλού,επίσης η AddPlayer καλείται σε κάποιο άλλο σημείο του προγράμματος που τρέχει σε διαφορετικό thread,κάπου αλλού δημιουργείται αυτό το thread κ.τ.λ.Το warning σου λέει ότι το treeview  δεν το έκανες assign ποτέ και φυσικά αν πας να το χρησιμοποιήσεις θα σου "σκάσει" το πρόγραμμα.Αφού είχες ήδη ένα tree view στο πρόγραμμά σου δούλεψε με εκείνο.

    Ας σου δώσω και άλλο παράδειγμα ώστε να προσαρμόσεις την χρήση της BeginInvoke και της Invoke στις δικές σου ανάγκες:έστω ότι θες να περάσεις αυτή τη φορά τρεις μεταβλητές και όχι μία και έστω ότι δεν θες να προχωρήσει το πρόγραμμα πριν η συνάρτηση χειρισμού ολοκληρώσει τη δουλειά της.Ο delegate λοιπόν θα ήταν:

    private void delegate MyDelegate(string A, int B,float C);
    private MyDelegate myDel; 
    Η συνάρτηση χειρισμού θα έμοιαζε κάπως έτσι (μην εστιάζεις στο περιεχόμενο όσο στη μορφή της συνάρτησης που είναι ίδια με του delegate:
    void StockFunction(string stockName,int stockNumber, float stockProfit)
    {
    treeView1.Nodes.Add(stockName);
    treeView1.Nodes[0].Nodes.Add(stockNumber.ToString());
    treeView1.Nodes[0].Nodes.Add(stockProfit.ToString());
    }
     
    Τέλος το απόσπασμα κώδικα όπου καλείται η Invoke:
     
    {
    //Do something
    treeView.Invoke(StockFunction,new Object[]{"MPETON AAA",2000,0.22});
    
    }
     
    Αυτά και εύχομαι να λυθεί το πρόβλημά σου.
  •  30-11-2009, 19:16 55558 σε απάντηση της 55328

    Απ: Πρόβλημα με προσθήκη nodes σε treeview.

    Το εφάρμοσα και δεν έχω πρόβλημα στο build του προγράμματος αλλά το πρόβλημα συνεχίζετε οπότε κάτι δεν δουλεύει σωστα παλι.

    Μήπως το πρόβλημα είναι σε όλη τη συνάρτηση add_palyer και οχι μόνο σε αυτό το κομμάτι όπου κάνει add.node;
    Απλά το είχα πίασει εκεί το σφάλμα με ενα catch που ειχα βαλει... τώρα όμως δε ξερω πως να το κανω debugging γιατι δε μου πεταει κάποιο σφαλμα ο debugger. Τι να κάνω για να δω που σκαει το προγραμμα τωρα;
  •  01-12-2009, 02:50 55569 σε απάντηση της 55558

    Απ: Πρόβλημα με προσθήκη nodes σε treeview.

    Αφού πλέον δεν σου κάνει catch το ίδιο exception σημαίνει ότι το πρόβλημα που είχες αρχικά λύθηκε αλλά δεν ήταν το μόνο...Κατ'αρχάς μπορείς να ξεκινήσεις από την πηγή του προβλήματος με την Control.Invoke,ποιος καλεί τη συνάρτηση Add_Player και βρίσκεται πράγματι σε διαφορετικό thread από το UI thread (η απάντηση μάλλον καταφατική είναι);Υπάρχουν άραγε άλλα μη thread-safe αντικείμενα στον κώδικά σου που επηρεάζονται από αυτό;

    Ενώ θα κοιτάξεις τα παραπάνω ξεκίνα βάζοντας ένα breakpoint στην αρχή της Add_Player.Έπειτα ξεκίνα το debug,φρόντισε ώστε να κληθεί η Add_Player και τρέξε γραμμή-γραμμή τον κώδικα (με F7 για αρχή).Αν η Add_Player έχει επιπλέον πρόβλημα θα δεις εύκολα σε ποια γραμμή θα σκάσει.Σου υπενθυμίζω τις τελευταίες γραμμές τις συνάρτησης που σε στέλνουν σε άλλες δύο συναρτήσεις (όπου πιθανόν να μην έχεις επαρκές exception handling ή ακόμα να σου έχει ξεφύγει κάτι):

    // Enimeronei tis metavlites.
                    activeplayers++;
                    position[activeplayers - 1] = 1;
                    score[activeplayers - 1] = 0;
                    Draw_TheRest();
                    Draw_Pioni(position[player - 1]);

    Αν ο κώδικας σκάει πριν καν εκτελεστεί η Add_Player,άρα δεν φτάνεις ποτέ στο breakpoint τότε πήγαινε ένα επίπεδο παραπάνω και βάλε breakpoint στην συνάρτηση που καλεί την Add_Player.Το debugging είναι επίπονη διαδικασία αλλά μεθοδικά βήματα θα σε οδηγήσουν στη ρίζα του κακού.

  •  03-12-2009, 17:00 55659 σε απάντηση της 55569

    Απ: Πρόβλημα με προσθήκη nodes σε treeview.

    Έπιασα με catch ένα σφάλμα όταν καλεί τη συνάρτηση μέσω μιας άλλης που ακούει σε πακέτα από τον server, δηλαδή του έρχεται το πακέτο να κάνει add_player και καλεί τη συνάρτηση. Εκεί μπαίνει σε exception και μου βγάζει το σφάλμα "Index was outside the bounds of the array". Αυτο ολο σε debug mode με breakpoints και εκτελεση κωδικα γραμμη-γραμμη.

    Βέβαια οταν δεν ειμαι σε debug mode και εκτελω το προγραμμα κανονικα μου πεταει το ιδιο σφαλμα παλι, να χρησιμοποησω την Invoke ή την begin.invoke...

    τι συμβαινει και βλεπω διαφορετικα errors;

    οσον αφορα το πρωτο σφαλμα τι μπορει να συμβαινει; καποια ιδεα;

    Ευχαριστω για το χρονο σου!
  •  04-12-2009, 03:38 55677 σε απάντηση της 55659

    Απ: Πρόβλημα με προσθήκη nodes σε treeview.

    "Index was outside the bounds of the array" σημαίνει ότι ένας δείκτης σε κάποια διάταξη είναι εκτός των ορίων,π.χ:

    int [] table =new int[2];//διαταξη με δύο στοιχεία
    int index=2;
    int last=table[index]//ο index είναι εκτός των ορίων της διάταξης-σφάλμα

    Προσωπικά εγώ θα θεωρούσα αυτή ως "αξιόπιστη" αποσφαλμάτωση και εκεί θα κοιτούσα πρώτα.Αλλά γιατί δεν γνωρίζεις ακόμα το ακριβές σημείο που σε πετάει;Όταν καλεί τη συνάρτηση μπορείς να κάνεις step into για να δεις που σκαλώνει;Τόσο τα break points όσο και το stack trace που πολύ βολικά μπορείς να διαβάσεις κατά το χειρισμό του exception θα έπρεπε να το δείχνουν.

    Όσο για το λόγο που σου πετάει exception εκτός debug mode άστο γι'αργότερα,πιθανότατα όταν θα φτάσεις στη ρίζα του προβλήματος να λυθεί και αυτό.

  •  04-12-2009, 12:23 55689 σε απάντηση της 55677

    Απ: Πρόβλημα με προσθήκη nodes σε treeview.

    Γεια χαρα! Ειμαι νεος στο φορουμ. 
    M@jestic  Το προβλημα με το array out of... ειναι στο treeView1.Nodes[0].Nodes.Add(newNode);
    (Γνομη μου, δεν ειναι c++ αρα καλυτερα να αποφευγεις τα  []) 
    Το treeview δεν εχει κανενα node απο μονο του, αμα εχεις καποιο(α) standar root μπορεις να τα βαλεις στο iniz του προγραμματος πχ
    treeView1.Nodes.Add(new TreeNode { Text = "Players", Name = "players_node" });
    (συν ενα Name για ευκολη αναζητηση) Επειδη υπαρχει το LINQ στα array ειναι περιττο να χρησιμοποιεις for loops. Πχ αμα εχεις το παραπανω Node ("players_node")  και θελεις να βαλεις (ή βγαλεις) καποιο Node μπορεις απαλα να καλεσεις τη Find()
     treeView1.Nodes.Find("players_node", true).Single().Nodes.Add(new TreeNode { Text = "test"});

    Και τελος, καπου ειδα οτι βαζεις nodes απο αλλο thread. Για αυτο πρεπει να κανεις invorke (αμα πατησεις πανω στο exception θα σου βγαλει ενα sample για cross-thread), εγω οταν εχω να κανω με cross-thread φτιαχνω μια method του τυπου async_name και ειναι καπος ετσι
     void AsyncAddSomething(object obj)
            {
                Action<object> func = new Action<object>(AsyncAddSomething);
                if (winform_Control.InvokeRequired)
                    this.Invoke(func, new object[] { obj });// this form
                else
                    winform_Control.AddData(obj);
            }
    Μπορεις να κανεις και ενα extension αν εχεις αρκετες φορμες πχ
     public static class Ex
        {
            public static void AsyncAdd(this TreeNodeCollection  coll, Control parentOf,TreeNode obj)
            {
                if (parentOf.InvokeRequired)
                    parentOf.Invoke(new Action<TreeNodeCollection, Control, TreeNode>(AsyncAdd), new object[] { coll, parentOf, obj });
                else
                    coll.Add(obj);
            }
        }

    Δες μια πρωχιρη δουλεια (ενα χ thread βαζει nodes στο "κυριο" προγραμμα)

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    
    
    using System.Threading;
    namespace treeview
    {
        public partial class Form1 : Form
        {
            Thread thread;
            public Form1()
            {
                InitializeComponent();
                thread = new Thread(worker);
                this.Load += delegate { thread.Start(); };
                treeView1.Nodes.Add(new TreeNode { Text = "Players", Name = "players_node" });
                 
            }
            void worker()
            {
                for (int i = 1; i < 11; i++)
                {
                    AsyncAdd(string.Format("Node:{0}", i));
                    Thread.Sleep(500);
                }
            }
            void AsyncAdd(string  obj)
            { 
                Action<string> func = new Action<string>(AsyncAdd);
                if (treeView1.InvokeRequired)
                    this.Invoke(func, new object[] { obj });
                else
                    treeView1.Nodes.Find("players_node", true).Single().Nodes.Add(new TreeNode { Text = obj });
            }
           
        }
    }


    υγ: Πως βαζω code tag?

  •  04-12-2009, 17:26 55697 σε απάντηση της 55689

    Απ: Πρόβλημα με προσθήκη nodes σε treeview.

    Γεια σου object++ και καλώς ήρθες.

    object+:
    Το προβλημα με το array out of... ειναι στο treeView1.Nodes[0].Nodes.Add(newNode);

    Αν θα κοιτάξεις παραπάνω,αυτό ακριβώς το ενδεχόμενο εξετάστηκε παραπάνω και ο Majestic διαβεβαίωσε ότι το root node προστέθηκε σε άλλο σημείο του προγράμματος -βέβαια αυτό δεν σημαίνει ότι δεν πρέπει να το διπλοτσεκάρει,ιδιαίτερα μάλιστα το πότε προστίθεται το root node αυτό.

    object+:
    (Γνομη μου, δεν ειναι c++ αρα καλυτερα να αποφευγεις τα  [])

    Ακριβώς επειδή δεν είναι C++ δεν μπορεί να το αποφύγει.Wink

    Όσον αφορά το code tag στην toolbar όταν συντάσσεις το post στο κάτω δεξιο τμήμα έχει την επιλογή "Insert Code Snippet".

     

     

     

  •  05-12-2009, 00:13 55704 σε απάντηση της 55697

    Απ: Πρόβλημα με προσθήκη nodes σε treeview.

    darklynx:

    Όσον αφορά το code tag στην toolbar όταν συντάσσεις το post στο κάτω δεξιο τμήμα έχει την επιλογή "Insert Code Snippet".


    hmm... Παιζει προβλημα με το google chrome. Με ie δουλευει με chrome nope.
Σελίδα 1 από 2 (25 εγγραφές)   1 2 >
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems