Chastia® | Portals - chastia.eu - prevody.sk - aspnet.sk - termoklima.sk - Partners - Quantasoft - QSH.sk - Free Web Hosting
 
WUG.sk udalosti
WebSlice - FórumDiskusné fórum
Vyhľadávanie
Skip Navigation LinksAspNet.sk > F�rum > .NET > Windows Forms

Diskusné fórum

Autor Téma
Mephi
5. 3. 2010 20:55:51
Príspevkov: 125
Článkov: 0
Blogy: 0
Správičiek: 0
Body: 625

Najaktívnejší č.: 27
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.

Bookmark and Share [Reakcia]
T
6. 3. 2010 0:48:30
Príspevkov: 1654
Článkov: 0
Blogy: 42
Správičiek: 162
Body: 13610

Najaktívnejší č.: 3
RE: Pridanie treenode z iného okna
@memphi: listview sa na to urcite hodi viac, ale ked chces...

http://blog.aspnet.sk/blogs/tomas/TreeViewDemo.zip

Tomáš Zeman, MCSD.NET

Bookmark and Share [Reakcia]
Mephi
8. 3. 2010 14:42:57
Príspevkov: 125
Článkov: 0
Blogy: 0
Správičiek: 0
Body: 625

Najaktívnejší č.: 27
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.

Bookmark and Share [Reakcia]
T
8. 3. 2010 18:06:39
Príspevkov: 1654
Článkov: 0
Blogy: 42
Správičiek: 162
Body: 13610

Najaktívnejší č.: 3
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

Bookmark and Share [Reakcia]
Mephi
9. 3. 2010 12:39:11
Príspevkov: 125
Článkov: 0
Blogy: 0
Správičiek: 0
Body: 625

Najaktívnejší č.: 27
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();
        }

Bookmark and Share [Reakcia]
T
9. 3. 2010 18:05:44
Príspevkov: 1654
Článkov: 0
Blogy: 42
Správičiek: 162
Body: 13610

Najaktívnejší č.: 3
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

Bookmark and Share [Reakcia]
Mephi
10. 3. 2010 0:23:01
Príspevkov: 125
Článkov: 0
Blogy: 0
Správičiek: 0
Body: 625

Najaktívnejší č.: 27
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 :)

Bookmark and Share [Reakcia]
T
10. 3. 2010 1:17:12
Príspevkov: 1654
Článkov: 0
Blogy: 42
Správičiek: 162
Body: 13610

Najaktívnejší č.: 3
RE: Pridanie treenode z iného okna
@Mephi:v pohode, tak kaslime na to ;-)

Tomáš Zeman, MCSD.NET

Bookmark and Share [Reakcia]
Mephi
11. 3. 2010 11:36:38
Príspevkov: 125
Článkov: 0
Blogy: 0
Správičiek: 0
Body: 625

Najaktívnejší č.: 27
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).

Bookmark and Share [Reakcia]
T
11. 3. 2010 15:57:45
Príspevkov: 1654
Článkov: 0
Blogy: 42
Správičiek: 162
Body: 13610

Najaktívnejší č.: 3
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

Bookmark and Share [Reakcia]
Mephi
11. 3. 2010 17:51:12
Príspevkov: 125
Článkov: 0
Blogy: 0
Správičiek: 0
Body: 625

Najaktívnejší č.: 27
RE: Pridanie treenode z iného okna
Dakujem :)

Bookmark and Share [Reakcia]


Zdroje
Bloggeri OPML Bloggeri
RSS 100 SpigiBlog
RSS 3 EX©M
RSS 1 singh
WUG.sk články
WUG.sk
Najaktívnejší...
28980 b. 1. vlko
14160 b. 2. spigi
13610 b. 3. T
4085 b. 4. slavof
4055 b. 5. duracellko
3475 b. 6. siro
3295 b. 7. skippo
3275 b. 8. jakub
3105 b. 9. dudok
2145 b. 10. ex
Ocenenie

MVP Profil - Igor Stanek
Čo je to MVP?
Partneri portálu
Reklama
Spriatelené weby
Copyright © 2002 - 2009 Chastia, spol. s r. o., Igor Stanek, Designed by Lacino
Portál je hostovaný na serveroch firmy Quantasoft - www.qsh.sk.
RSS - anotácia, RSS - Blogy