Diskuze: Jak přidat obrázek do listboxu ve Visual Basic?
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 12 zpráv z 12.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
listbox túto možnosť nemá, má ju listview,
no ja by som k tomu skôr použil datagridview
Děkuji za odpověď, neexistuje nějaká alternativa? Např. změnit pozadí itemu? Default modře 1. klik na zelenou, 2. klik na červenou. Potřeboval bych něco, čím bych si označil splněné, nesplněné a rozdělané úkoly.
Jestli to děláš ve winforms, tak tam moc možností není, na to je lepší wpf
použi ten datagridview, do jedného stĺpca vlož text úlohy, do druhého nevkladaj nič, len mu v kóde zmeň farbu pozadia, kliknutím na ten stĺpec zmeň znova farbu na akú chceš, prípadne mu daj contect menu strip
nemám k dispozícii visual studio, tak ti nedám presný kód, tak to ber s rezervou
private sub LoadDataGridView()
dgv.rowcount += 1
dgv.rows(dgv.rowcount-1).cells(0).value = "Uloha 1"
dgv.rows(dgv.rowocunt-1).cells(1).style.backcolor = color.red
end sub
Private Sub dgv_CellClick(sender As Object, e As EventArgs) Handles dgv.CellClick
if e.columnindex = 1 then
if e.backcolor = color.red then
e.backcolor = color.blue
elseif e.backcolor = color.blue then
e.backcolor = color.green
elseif e.backcolor = color.green
e.backcolor = color.red
end if
end if
End Sub
písal som to z hlavy, tak tam budú chyby,
skús a uvidíš či ti to vyhovuje,
datagridview má obrovské množstvo vlastností, čiže dokážes s ním
dosiahnúť čokoľvek
Ahoj, děkuji za odpověď, Upravil jsem to takto:
Private Sub LoadDataListBox()
ListBox1.rowcount += 1
ListBox1.rows(ListBox1.rowcount - 1).cells(0).value = "Uloha 1"
ListBox1.rows(ListBox1.rowocunt - 1).cells(1).style.backcolor = Color.Red
End Sub
Private Sub ListBox1_Click(sender As Object, e As EventArgs) Handles ListBox1.Click
If e.columnindex = 1 Then
If e.backcolor = Color.Red Then
e.backcolor = Color.Blue
ElseIf e.backcolor = Color.Blue Then
e.backcolor = Color.Green
ElseIf e.backcolor = Color.Green Then
e.backcolor = Color.Red
End If
End If
End Sub
Vyskytující se chyby:
'columnindex' is not a member of System.EventsArgs
'backcolor' is not a member of System.EventsArgs
'rowcount' is not a member of System.Windows.Forms.ListBox
'row' is not a member of System.Windows.Forms.ListBox
Ten dataview nenavazuje na moje funkce, kouknu na to o víkendu. To bude chtít začít celý program znova.
jasné že ti to hádže chyby, pretože listbox nemá tieto možnosti, jasne
som napísal datagridview
pozri si to, nemáš s tým čo pokaziť
ešte teraz keď pozerám neviem či bude fungovať
e.backcolor = color...
možno to budeš musieť vymeniť za
datagridview.rows(číslo riadku).cells(číslo stĺpca).style.backcolor = color...
Pokud je to pro WinForms a chtel by si pouzit ListView, tak tady mam priklad
jak vyplnit ListView s pridanim obrazku do kazdeho radku a prvniho sloupce pred
text .
Je nutno na form pridat ListView nastavenim Name = lstOverview a View =
Details
Je to sice jen ukazka jak zhruba na to, ale mohla by se hodit ...
Pozor v kodu Do Loop nema podminku ukonceni!To si musis nejak osetrit sam...
Private Sub FillListView()
'Vymazani vsech sloupcu
lstOverview.Columns.Clear()
'Vymazani vsech radku v ListView
lstOverview.Items.Clear()
lstOverview.Columns.Add("HeaderText1") 'Pridani sloupce do ListView
'... Popripade pridani dalsich sloupcu do ListView
lstOverview.Columns.Add("HeaderText2")
lstOverview.Columns.Add("HeaderText3")
' Vytvoreni imagelistu
Dim meImageStatusList As New ImageList()
' Cesta k souborum s obrazky
Dim path As String = "C:\x\...."
'Nahreani obrazku do ImageListu
meImageStatusList.Images.Add(Bitmap.FromFile(path & "Picture1.png"))
meImageStatusList.Images.Add(Bitmap.FromFile(path & "Picture2.png"))
'.........
'ImageList do ListView.SmallImageList
lstOverview.SmallImageList = meImageStatusList
'Vyplneni radku ListView
Do
'......
' Cislo Obrazku ktery se ma zobrazit
Dim imageIndex As Integer = 1
'Pridani noveho radku s textm "Text" do ListView + vypneni indexu obrazku ktery se ma zobrazit
Dim lsi = lstOverview.Items.Add("Text", imageIndex)
'Popripade pridani dalsich subitems
lsi.SubItems.Add("SubItem1Text")
lsi.SubItems.Add("SubItem2Text")
'....
Loop
End Sub
Říkáš, že jsi začátečník. Být tebou přejdu místo zastaralého WinForms na moderní WPF, než bude pozdě se přeučovat. Opravdu to za to stojí, ze začátku si možná budeš říkat, že ne, ale až se dostaneš na věci jako právě třeba tohle oceníš to.
Ano doporucuji take prejit na WPF.Sice WinForm je asi trochu jednodusi, ale budes se zbytecne ucit neco co nema budoucnost....
Zobrazeno 12 zpráv z 12.