Jag har en listview i ett formulär. För att navigera i denna vill jag använda piltangenterna eller vänster musknapp. När jag högerklickar ska en meny visas. Efter som det inte finns någon möjlighet att göra en Cancel på ett klickevent (i alla fall vad jag vet) så måste du nog i MouseDown (om e.Button = RightButton) kolla vilken listitem som är vald och sedan i MouseUp sätta tillbaka till denna. Detta eftersom SelectedIndexChanged anropas mitt emellan dessa två event. Tack, jag ska testa detta. Tyvärr hinner jag inte nu, men jag återkommer på måndag med resultatet. Hej,Högerklick i en listview
Nu till problemet. När jag högerklickar, markerar jag samtidigt den rad som befinner sig under musen. Detta vill jag undvika. Markeringen ska inte ändra sig utan endast en meny ska visas.
Hur kan man göra för att undvika att markera vid högerklick?
/Kjell GustavssonSv: Högerklick i en listview
Om du har kod i SelectedIndexChanged så måste du nog också sätta en flagga i MouseDown och sedan se till att koden i SelectedIndexChanged inte körs om denna flagga är satt, och slutligen återställa flaggan i MouseUp.
Risken finns att det i GUI:t syns att den byter listitem (att den blåmarkerade raden flyttar på sig fram och tillbaka) så det kanske inte är en perfekt lösning. Men det är den enda som jag kan komma på just nu...Sv:Högerklick i en listview
Kjell GustavssonSv: Högerklick i en listview
En liten kommentar.... Att skapa ett beteende som gör att det avviker från standard är inte att rekommendera. Detta gör ofta att man istället skapar förvirring bland ens användare. Jag kan se framför mig en person som är van vid att kunna högerklicka på ett speciellt item bli väldigt förvånad när denna action nu istället arbetar på ett annat item. Speciellt irriterande blir detta om man upptäcker detta försent och får en massa att rätta till eller ännu värre skickat vidare felaktig data som en följd av detta.
Jag rekommenderar skarpt att följa gällande GUI standard.
// JohanSv:Högerklick i en listview
Per: Tack för tipset. Det fungerade som du föreslog: Som du också misstänkte flyttades focus mellan elementen på ett mindre önskvärt sätt.
Johan: Du har helt klart en poäng. Får nog ta mig en ny funderare...
/Kjell Gustavsson