ik ben bezig met een programma, die in een listview erg mooi een directory laat zien.
Nou werkt dat gewoon erg goed een geen problemen mee.
Voordat ik de listview gebruikte gebruikte ik een listbox, en daarmee als er geen item geselect is, krijg je een listbox.selecteditem = -1. Zo kijk ik of er niks geselecteerd is.
Maar nu kwam ik toch best wel in de problemen met het converteren naar de code naar de list view:
Wat de bedoeling is dat met behulp van een context menu, de user een bestand kan aan klikken, en dan rechter klik: Rename doet.
Nou werkt dat ook helemaal naar behoren, maar waar ik mee zit is als hij niks heeft geselecteerd. Bij de listbox keek ik of de selecteditem waarde -1 was, was dat zo, dan gebeurde er niks.
Maar bij de Listviews werkt dat helaas niet.
Ik heb nu de volgende code:
Zoals je ziet gebruik ik om te kijken of er niks geselecteerd is nu:
Dit werkt helaas niet, aangezien als ik hem 'weg selecteer' (klik op een leeg stukje in de list) dan geeft hij een error, dat de listview index out of bound is.
Dat lijkt mij komen doordat de if functie niet goed zijn werk doet , en hij toch bij de code komt:
Ik heb het volgende geprobeerd, om er achter te komen of er niks is geselecteerd:
die laatste is ongeveer zoals het met een listbox werkte, hij geeft als er wel wat is geselecteerd braaf de index van de geselecteerde item. Maar het grote verschil is als er niks is geselecteerd hij dan niet -1 geeft. Hij geeft dan gewoon een foutmelding.
Nu is mijn vraag, weet iemand hoe ik er achter kan komen of er niks is geselecteerd zodat de rename functie niet werkt,
Of hoe ik de rename knop op het context menu kan uitschakelen zodra ik niks heb geselecteerd.
Voor de goede orde, multiselect staat uit, dus er is nooit meer dan 1 bestand geselecteerd.
Nou werkt dat gewoon erg goed een geen problemen mee.
Voordat ik de listview gebruikte gebruikte ik een listbox, en daarmee als er geen item geselect is, krijg je een listbox.selecteditem = -1. Zo kijk ik of er niks geselecteerd is.
Maar nu kwam ik toch best wel in de problemen met het converteren naar de code naar de list view:
Wat de bedoeling is dat met behulp van een context menu, de user een bestand kan aan klikken, en dan rechter klik: Rename doet.
Nou werkt dat ook helemaal naar behoren, maar waar ik mee zit is als hij niks heeft geselecteerd. Bij de listbox keek ik of de selecteditem waarde -1 was, was dat zo, dan gebeurde er niks.
Maar bij de Listviews werkt dat helaas niet.
Ik heb nu de volgende code:
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| If lstview_replays.SelectedItems Is Nothing Then Else message = "Please enter a new name for the replay:" ' Set prompt. title = "Rename" ' Set title. defaultValue = lstview_replays.SelectedItems(0).SubItems(0).Text ' Set default value. myValue = InputBox(message, title, defaultValue) New_file &= myValue If Old_file <> New_file And myValue <> "" Then File.Move(Old_file, New_file) End If Renew_List() End If |
Zoals je ziet gebruik ik om te kijken of er niks geselecteerd is nu:
Visual Basic:
1
| If lstview_replays.SelectedItems Is Nothing Then |
Dit werkt helaas niet, aangezien als ik hem 'weg selecteer' (klik op een leeg stukje in de list) dan geeft hij een error, dat de listview index out of bound is.
Dat lijkt mij komen doordat de if functie niet goed zijn werk doet , en hij toch bij de code komt:
Visual Basic:
1
| lstview_replays.SelectedItems(0).SubItems(0).Text |
Ik heb het volgende geprobeerd, om er achter te komen of er niks is geselecteerd:
Visual Basic:
1
2
3
4
| If lstview_replays.SelectedItems Is Nothing Then If lstview_replays.SelectedItems.Count <> 0 Then If lstview_replays.Selectedindices.Count <> 0 Then If lstview_replays.Selectedindices(0) = -1 Then |
die laatste is ongeveer zoals het met een listbox werkte, hij geeft als er wel wat is geselecteerd braaf de index van de geselecteerde item. Maar het grote verschil is als er niks is geselecteerd hij dan niet -1 geeft. Hij geeft dan gewoon een foutmelding.
code:
1
2
3
| An unhandled exception of type 'System.ArgumentOutOfRangeException' occurred in system.windows.forms.dll Additional information: Specified argument was out of the range of valid values. |
Nu is mijn vraag, weet iemand hoe ik er achter kan komen of er niks is geselecteerd zodat de rename functie niet werkt,
Of hoe ik de rename knop op het context menu kan uitschakelen zodra ik niks heb geselecteerd.
Voor de goede orde, multiselect staat uit, dus er is nooit meer dan 1 bestand geselecteerd.
Oh noes.. No more TreinTijden :(