Hocu da treeview kontrola umesto slike zemlje, kod drzava prikazuje zastavu za svaku zemlju posebno !!!
* napravio sam dva dataseta za dve tabele, upit drzava i kontinenata i tabela zastava
* uz linq programski jezik sam izvukao skracene oznake drzava, npr. SER = Srbija,
jel taku skracenicu imaju obadve tabele...
imena drzava
umanjene slike zastava 32*32
- ne koristim samo jedan view, upit iz baze zato sto vb .net express pravi komplikacije
kada se radi sa upitom u koji ima mnogo tabela... zato koristim samo jedan upit sa
najvise dve tabele u upitu, drzava i kontinenata
- umanjene zastavice sa 32*32 piksela *.bmp koristim na 16*16 jer treeview kontrola crta dodatne
lijnije na treeview kada koristite 32*32 pa izgleda grozno... !!!
* napravio sam jednu proceduru da mi ukloni duplikate iz niza kontinenata
* uz pomoc petlje sam ubacio sve kontinente i drzave,
* imagelist sam dodao (0) prvu sliku zemlje (globe)
- slicicu globe prikazuje u treeview za svaku granu, bez pisanja ikakvog koda, cim
spojite treeview i imagelist, bey obzira da li je slicica podesena na .index ili .kay treeview kontrole !!!
ostale sam slicice *bmp iz baze dodao petljom, mada hocu da stavim i skracenice drzava
kao tag ili index, sta vec imagelist koristi zajedno sa tim slicicama ??? i kako se to radi ???
1. Kako da ubacim slike sa nekim indeksom ili tagom ili cime bilo da mogu lakse pronaci sliku nego
brojevima u imagelist ???
2. Kako da ubacim slike sa imagelist-a u treeview ???
3. Gde mogu i kako da pojednostavim i uprostim kod ???
4. Kad selektujem neku drzavu da se pojavi njeno ime u msgbox ???
5. Ima li neko kod ili text kako se vrse sve operacije sa treeview ???
u 10 knjiga nisam nasao nista !!! svi ga pisci tu sfusere i zavrse... sa jednom ili dve slike... !!!
npr. kako mogu sam dodavati i uklanjati nodove kad pokrenem program zajedno sa slikama,
da se te izmene upisuju recimo u neku bazu, da program pamti sve izmene ???
* da li bi bilo lakse napraviti neki objecat sa picture i textbox pa taj objecat dodavati treeview kontroli... ???
i da ne postavljam jos milion pitanja, pls help !!!
Izvolite kod... !!!
Public Class frmIzaberiteDrzavu
Private Sub frmIzaberiteDrzavu_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'TODO: This line of code loads data into the 'SlikaZastavaMinDataSet.SlikeZastavaTabela' table. You can move, or remove it, as needed.
Me.SlikeZastavaTabelaTableAdapter.Fill(Me.SlikaZastavaMinDataSet.SlikeZastavaTabela)
'TODO: This line of code loads data into the 'QDrzavaDataSet.qDrzavaKontinent' table. You can move, or remove it, as needed.
Me.QDrzavaKontinentTableAdapter.Fill(Me.QDrzavaDataSet.qDrzavaKontinent)
'ubacivanje slika u treeview
'izvlacimo slike zastava i oznaku u niz
Dim SveZastave = From zastave In Me.SlikaZastavaMinDataSet.SlikeZastavaTabela _
Order By zastave.SkracenicaDrzave _
Select zastave.SkracenicaDrzave, zastave.SlikaZastavaMin
Dim zass = From zastave In SveZastave _
Select Image.FromStream(New System.IO.MemoryStream(zastave.SlikaZastavaMin.ToArray()))
Dim zs() As Image = zass.ToArray()
zass = Nothing
Dim skd = From skra In SveZastave _
Order By skra.SkracenicaDrzave _
Select skra.SkracenicaDrzave
Dim sk() As String = skd.ToArray()
skd = Nothing
For i As Integer = 0 To sk.GetUpperBound(0)
Me.imlZastave.Images.Add(sk(i), zs(i))
Next
'ubacuje tekst i pravi strukturu u treeview
Dim SveDrzave = From drzave In Me.QDrzavaDataSet.qDrzavaKontinent _
Order By drzave.OznakaDrzave _
Select drzave.OznakaDrzave, drzave.Drzava, drzave.NazivDrzave, drzave.Expr1
'pravi niz string tipa oz i pridodaje mu oznake drzave
Dim ozna = From oznaka In SveDrzave _
Select oznaka.Drzava
Dim oz() As String = ozna.ToArray
ozna = Nothing
'pravi niz string tipa kon i pridodaje mu kontinente
Dim konn = From kontinent In SveDrzave _
Select kontinent.Expr1
Dim kon() As String = konn.ToArray
konn = Nothing
'poziva proceduru za uklanjanje duplikata i otklanja duplikate iz kontinenata
kon = UkloniDuplikate(kon)
'ubacuje prvi red ili kontinente u treeview
Dim bb As String = ""
'zapocinje update kontrole radi ne trepcanja i brzeg ubacivanja
'podataka u kontrolu treeview
Me.trwIzaberiDrz.BeginUpdate()
'ova jedna petlja se koristi za posao od vise petlji
For i As Integer = 0 To kon.GetUpperBound(0)
Me.trwIzaberiDrz.Nodes.Add(kon(i))
bb = kon(i)
'izdvaja drugi red na osnovu uslova jednog kontinenta
Dim od = From dd In SveDrzave _
Order By dd.OznakaDrzave _
Where dd.Expr1 = bb _
Select dd.Drzava
'pridruzuje prvom redu odabrane drzave
Dim drz() As String = od.ToArray
For j As Integer = 0 To drz.GetUpperBound(0)
Me.trwIzaberiDrz.Nodes(i).Nodes.Add(drz(j))
Next
Next
'zavrsavamo sa update kontrole, pa onda sortiramo sadrzaj
Me.trwIzaberiDrz.Sort()
Me.trwIzaberiDrz.EndUpdate()
Me.trwIzaberiDrz.Refresh()
End Sub
'funkcija uklanja duplikate iz string niza
Public Function UkloniDuplikate(ByVal niz() As String) As Array
Dim a As List(Of String) = New List(Of String)
Dim ix As Integer = 0
Do While (ix < niz.Length)
If Not a.Contains(niz(ix)) Then
a.Add(niz(ix))
End If
ix = (ix + 1)
Loop
niz = a.ToArray
Return niz
End Function
End Class
