Avatar billede KLS Novice
14. maj 2005 - 21:51 Der er 13 kommentarer og
1 løsning

Listbox vss ListView

jeg er igang med at lave et program, hvor jeg skal have markeret en hel linie i enten en listbox eller listview.

Lige pt. har jeg bygget det hele op i et listview, men den markere kun den første Kolonne (som ikke er et subitem) og hvordan får jeg den så til dette ??

og der udover er det sådan at jeg har bygget det op i et ListView Array altså sådanne ListView1(index)
hvor index er mellem 0 og 9

jeg smider lige lidt kode :

Private Sub Form_Load()
f = 0
Do
    DoEvents
ListView1(f).ColumnHeaders(1).Width = 200
ListView1(f).ColumnHeaders(1).Text = "Ch"
ListView1(f).ColumnHeaders(2).Width = 750
ListView1(f).ColumnHeaders(2).Text = "Frek. Mhz"
ListView1(f).ColumnHeaders(3).Width = 1500
ListView1(f).ColumnHeaders(3).Text = "Chan. Tag"
ListView1(f).ColumnHeaders(4).Width = 600
ListView1(f).ColumnHeaders(4).Text = "CTCSS"
ListView1(f).ColumnHeaders(5).Width = 300
ListView1(f).ColumnHeaders(5).Text = "DLY"
ListView1(f).ColumnHeaders(6).Width = 200
ListView1(f).ColumnHeaders(6).Text = "L/O"
ListView1(f).ColumnHeaders(7).Width = 250
ListView1(f).ColumnHeaders(7).Text = "ATT"
ListView1(f).ColumnHeaders(8).Width = 350
ListView1(f).ColumnHeaders(8).Text = "BEEP"
ListView1(f).ColumnHeaders(9).Width = 500
ListView1(f).ColumnHeaders(9).Text = "Kategori"
ListView1(f).ColumnHeaders(10).Width = 0
ListView1(f).ColumnHeaders(11).Width = 0
f = f + 1
Loop Until f = 10

Dette er bare for at i kan få en idee om hvordan min listView er bygget op..
Avatar billede sjh Nybegynder
14. maj 2005 - 21:54 #1
ListView1.FullRowSelect = True
Avatar billede sjh Nybegynder
14. maj 2005 - 21:55 #2
ja eller..

ListView1(f).FullRowSelect = True
Avatar billede KLS Novice
14. maj 2005 - 22:04 #3
Den kan ikke finde FullRowSelect

når det er jeg skriver det ind i min fil..
Det kan være jeg bruger en forkert ListView ?
Avatar billede KLS Novice
14. maj 2005 - 22:05 #4
Skal lige siges at jeg bruger listview som Raport form.
Avatar billede sjh Nybegynder
14. maj 2005 - 22:13 #5
ellers prøv med noget API..

Option Explicit

Private Const LVS_SHAREIMAGELISTS As Long = &H40&
Private Const GWL_STYLE          As Long = (-16)

Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Public Sub SetFullRowSelect(lv As ListView)
  With lv
      Call SetWindowLong(.hwnd, GWL_STYLE, GetWindowLong(.hwnd, GWL_STYLE) Or LVS_SHAREIMAGELISTS)
      Call SendMessage(.hwnd, &H1000 + 54, ByVal &H20, ByVal &H20)
  End With
End Sub

Private Sub Form_Load()
  Call SetFullRowSelect(ListView1)
End Sub
Avatar billede sjh Nybegynder
14. maj 2005 - 22:14 #6
array udgave..

  Call SetFullRowSelect(ListView1(f))
Avatar billede KLS Novice
14. maj 2005 - 23:18 #7
Det var lige det jeg manglede..

er stadig ikke helt stærk i det der API.... men rart med hjælp. :D
Avatar billede KLS Novice
14. maj 2005 - 23:22 #8
bare lige en sidste ting.

jeg ville entlig også gerne have nogle linier i disse listView's
Avatar billede sjh Nybegynder
14. maj 2005 - 23:36 #9
http://vbnet.mvps.org/code/comctl/lvgridlines.htm
der er også mange andre gode API eksempler :)
Avatar billede KLS Novice
15. maj 2005 - 00:10 #10
Endnu en gang Tak for hjælpen :D
Avatar billede sjh Nybegynder
15. maj 2005 - 01:33 #11
takker også for point :)
Avatar billede KLS Novice
16. maj 2005 - 14:18 #12
Jeg kan på en eller anden måde stadig ikke få det til at virke... jeg må gøre noget forkert..

men jeg kigger lige selv på det og vender tilbage :D
Avatar billede KLS Novice
16. maj 2005 - 14:40 #13
Argh...
Jeg har brugt en forkert OCX fil til at lave min ListView med :(

det ser ud til at det er der forklaringen på mit problem ligger.

jeg har brugt mscomctl.ocx istedet for mscomctl32.ocx

Grrr.. kunne slå mig selv ihjel.
Avatar billede KLS Novice
16. maj 2005 - 14:52 #14
Så nu har jeg installeret den rigtige OCX fil og ændret mine ListViews til den OCX fil og nu virker det uden alle de API kald :D
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester