Správičky 2 174 Blogy 553 Fórum 13 339

Prehľad diskusie

photo
Pridanie treenode z iného okna
Mephi
5. 3. 2010 20:55:51
photo
RE: Pridanie treenode z iného okna
T
6. 3. 2010 0:48:30
photo
RE: Pridanie treenode z iného okna
Mephi
8. 3. 2010 14:42:57
photo
RE: Pridanie treenode z iného okna
T
8. 3. 2010 18:06:39
photo
RE: Pridanie treenode z iného okna
Mephi
9. 3. 2010 12:39:11
photo
RE: Pridanie treenode z iného okna
T
9. 3. 2010 18:05:44
photo
RE: Pridanie treenode z iného okna
Mephi
10. 3. 2010 0:23:01
photo
RE: Pridanie treenode z iného okna
T
10. 3. 2010 1:17:12
photo
RE: Pridanie treenode z iného okna
Mephi
11. 3. 2010 11:36:38
photo
RE: Pridanie treenode z iného okna
T
11. 3. 2010 15:57:45
photo
RE: Pridanie treenode z iného okna
Mephi
11. 3. 2010 17:51:12

Pridanie treenode z iného okna

photo
Mephi
5. 3. 2010 20:55:51
Body: 625
Najaktívnejší č.: 30

Pridanie treenode z iného okna

Zdravim,

chcel by som si napisat malu aplikaciu, ktora obsahuje jeden treeview a jeden gombik na otvorenie dalsieho okna. V tom dalsom okne by sa nachadzali 2 textboxy:
Meno:
Adresa:
Meno by bolo text, co sa zobrazi pre dany treenode v treeview, a Adresa by bola lubovolny atribut ktory sa v treeview nezobrazi.
Po zadani tychto udajov a po kliknuti na OK, by sa malo zobrazit novy treenode v treeview.
Rozmyslal som o pouziti datasetu, ktory sa po ukonceni programu ulozi do xml. Pri spustani programu by sa ten xml pouzil pre nacitanie udajov do datasetu, z coho by sa vytvorila struktura treeview.
Problem ale je, ze neviem ako by sa to malo zrealizovat. Uvital by som najeka ukázky kodu.

Za pomoc vopred dakujem.

[Reakcia]


photo
Mephi
8. 3. 2010 14:42:57
Body: 625
Najaktívnejší č.: 30

RE: Pridanie treenode z iného okna

Dakujem za ukazku,

skusal som ju, ale u mna ta serializacia nejak nefunguje. Ako nedostavam ziadnu chybu, ale subor sa mi nevytvori. Dalej by som sa chcel spytat, ako si mozem overit, ci dany treenode obsahuje vsetky atributy ktore mam zadefinovane ? Totiz ked pridam treenode, tak to robim takto:
private void btn_AddServer_Click(object sender, EventArgs e)
        
{
            Server newServer
= new Server();
            using (EWAddServer addServerDialog
= new EWAddServer())
            
{
                addServerDialog.BindTo(newServer);
                if (addServerDialog.ShowDialog(
this) == DialogResult.OK)
                
{
                    _serverBook.Servers.Add(newServer);
                    tv_Servers.Nodes.Add(newServer.ServerName);
                }

            }

        }
T.j. mam ta spominane iba ServerName, a aj to sa mi v treeview zobrazi. Ako si mozem overit ci dany treenode obsahuje aj atribut ServerAddress ? Este raz spominam, serializácia u mna nefunguje, cize vytvoreny subor na to nemozem pouzit.

[Reakcia]

photo
T
8. 3. 2010 18:06:39
Body: 15925
Najaktívnejší č.: 2

RE: Pridanie treenode z iného okna

@mephi:
Subor by Ti mal vytvorit, ze zatvaras aplikaciu a das yes. Subor Ti vytvara v bin foldri.

neviem, preco by Ti nefungovala Xml serializacia.

tv_Servers.Nodes.Add(newServer.ServerName);

neurobi nic ine, len prida novy TreeNode do stromu a nastavi mu Text, je to jeden z "magic" oveloadov Add metody.

"ako si mozem overit ci dany treenode obsahuje aj atribut ServerAddress ?"

nerozumiem celkom otazke, ale ...

var myNode= tv_Servers.Nodes.Add(newServer.ServerName);
myNode.Tag= newServer;

a potom mas cele info o node dostupne aj cez tag atribut v kazdom node, staci pretypovat
var server= (Server) myNode.Tag

Tomáš Zeman, MCSD.NET

[Reakcia]

photo
Mephi
9. 3. 2010 12:39:11
Body: 625
Najaktívnejší č.: 30

RE: Pridanie treenode z iného okna

A ked som si pridal Remove gombik pre vymazanie vybraneho uzla v treeview, ako to spravim aby sa vymazal aj dany zaznam z List ?
private void btn_RemoveServer_Click(object sender, System.EventArgs e)
        
{
            tv_Servers.SelectedNode.Remove();
            tv_Servers.Update();
        }
tuto je metoda pre pridanie uzla a zaznamu:
private void addServer_Click(object sender, EventArgs e)
        
{
            Server newServer
= new Server();
            using (EWaddServer addServerDialog
= new EWaddServer())
            
{
                addServerDialog.BindTo(newServer);
                if (addServerDialog.ShowDialog(
this) == DialogResult.OK)
                
{
                    if (tv_Servers.Nodes.Count
== 0)
                    
{
                        _serverBook
= new ServerBook();
                        _serverBook.Servers.Add(newServer);
                        tv_Servers.Nodes.Add(newServer.ServerName);
                        
                    }

                    else
                    
{
                        _serverBook.Servers.Add(newServer);
                        tv_Servers.Nodes.Add(newServer.ServerName);
                        
                    }

                }

            }

            tv_Servers.ExpandAll();
        }

[Reakcia]

photo
T
9. 3. 2010 18:05:44
Body: 15925
Najaktívnejší č.: 2

RE: Pridanie treenode z iného okna

odpamatas si referenciu na node cez .Tag property
_serverBook = new ServerBook();
_serverBook.Servers.Add(newServer);
var node
= tv_Servers.Nodes.Add(newServer.ServerName);
node.Tag
= newServer;
Remove
var serverToRemove= (???) tv_Servers.SelectedNode.Tag;
_serverBook.Servers.Remove(serverToRemove);
Inak uz to zacina byt celkom slusny horor...ked to este trochu posunies, posli to a refactornem Ti to.

Tomáš Zeman, MCSD.NET

[Reakcia]

photo
Mephi
10. 3. 2010 0:23:01
Body: 625
Najaktívnejší č.: 30

RE: Pridanie treenode z iného okna

Ja Ti to rad poslem, lenze to je Visual Studio Isolated Shell aplikacia, a toto nie je samostatne fungujuci windows form, ale vstavany user control. Ale ak chces, poslem ti to cez mail alebo nejakym inym sposobom.

Inac dakujem, uz mi to asi fici v pohode :)

[Reakcia]

photo
T
10. 3. 2010 1:17:12
Body: 15925
Najaktívnejší č.: 2

RE: Pridanie treenode z iného okna

@Mephi:v pohode, tak kaslime na to ;-)

Tomáš Zeman, MCSD.NET

[Reakcia]

photo
Mephi
11. 3. 2010 11:36:38
Body: 625
Najaktívnejší č.: 30

RE: Pridanie treenode z iného okna

Este by som mal jednu otazku, ako by sa spravil dalsie okno na editovanie uz zadanych udajov ? Myslim ked si vyberem treenode, a kliknem na tlacitko Edit, tak nech sa mi zobrazi podobne okno ako pri pridani noveho servera, s taky rozdielom, ze textboxy uz budu obsahovat udaje daneho treenode (tzn. udaje servera).

[Reakcia]

photo
T
11. 3. 2010 15:57:45
Body: 15925
Najaktívnejší č.: 2

RE: Pridanie treenode z iného okna

@Mephi: pouzil by som to iste okno...len by som to nabindoval na (???) tv_Servers.SelectedNode.Tag

Tomáš Zeman, MCSD.NET

[Reakcia]

photo
Mephi
11. 3. 2010 17:51:12
Body: 625
Najaktívnejší č.: 30

RE: Pridanie treenode z iného okna

Dakujem :)

[Reakcia]



Najaktívnejší užívatelia
1. 34425 b. photo vlko
2. 15925 b. photo T
3. 15330 b. photo spigi
4. 5885 b. photo dudok
5. 5510 b. photo slavof
6. 4935 b. photo siro
7. 4715 b. photo duracellko
8. 3625 b. photo jakub
9. 3490 b. photo lubolacko
10. 3340 b. photo skippo