Avatar billede majbom Novice
18. februar 2006 - 00:29 Der er 5 kommentarer og
1 løsning

højreklik på listview

hejsa

jeg har en contex-menu på en listview, og den virker som den skal, men jeg vil gerne have at den tjekker en værdi i en bestemt kolonne, og alt efter hvad den indeholder, skal det ene punkt i menuen enten være dis- eller enabled.
jeg kan godt få den til at få fat i værdien ved hjælp af følgende kode:

private void lvwShow_Click(object sender, MouseEventArgs e)
{
  switch (e.Button)
  {
      case MouseButtons.Right:
        if (showType == "")
        {
            ctxShow_mi_PrintListe.Enabled = false;
        }
        else
        {
            ctxShow_mi_PrintListe.Enabled = true;
        }
        foreach (ListViewItem item in lvwShow.SelectedItems)
        {
            MessageBox.Show(string.Format("Item:{0}", item.Text));
        }
        break;
  }
}

men det virker kun når man markerer linjen først, dvs hvis jeg højreklikker på linje1 og derefter højreklikker på linje2, får jeg indholdet af linje1...
det skulle gerne virke ved første tryk jo
jeg har også prøvet med lvwShow_IndexChanged i stedet for lvwShow_Click, men så kan jeg ikke bruge MouseEventArgs...

nogle der kan hjælpe?

på forhånd tak
Avatar billede lifo Nybegynder
18. februar 2006 - 01:26 #1
du skal bruge HitTest fra MouseEventArgs
lidt inspiration
private void lvwShow_MouseClick(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Right)
            {
                ListViewHitTestInfo hitTestInfo = lvwShow.HitTest(e.Location);
                ListViewItem detItemSomErUnderMusen = hitTestInfo.Item;
                // check et eller andet i listViewItem'et og lav et eller andet
            }
        }
Avatar billede lifo Nybegynder
18. februar 2006 - 01:40 #2
om det skal virke med mouseClick så skal du også have FullRowSelect til True

brug heller et DataGridView  det er meget nemmere at arbejde med
Avatar billede lifo Nybegynder
18. februar 2006 - 01:42 #3
altså det med fullRowSelect er kun om det skal virke når du klikker på et subitem
ellers virker det når du klikker på selve itemet (kolonne 0 i detailVisning)
Avatar billede majbom Novice
18. februar 2006 - 02:03 #4
jeg har fullRowSelect på...
men kan jeg bare bruge det du skrev i din første kommentar?
Avatar billede majbom Novice
18. februar 2006 - 02:31 #5
det virker, takker igen :)
Avatar billede lifo Nybegynder
18. februar 2006 - 12:23 #6
svar
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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