ListBox -- Rechte Maustaste

Hallo,

bei einer ListBox kann man ja ein ContextMenuStrip hinzufügen. Standardmäßig wird das Kontextmenü dann angezeigt, wenn man irgendwo mit der rechten Maustaste in die ListBox klickt. So weit so gut …

Nun möchte ich allerdings, dass wenn man mit der rechten Maustaste auf einen ListBox Eintrag klickt, der entsprechende Eintrag auch markiert, also ausgewählt wird. Zudem sollen in der darauf aufpoppenden ListBox auch andere Einträge, alswie wenn man in einen freien Bereich der ListBox geklickt hat, auswählbar sein. Sprich wenn man auf einen Listeneintrag mit der rechten Maustaste klickt, dann sollen bspw. die Einträge „Neu“, „Bearbeiten“ und „Löschen“ auswählbar sein und wenn man auf einen freien Bereich der Liste klickt, dann soll lediglich der Eintrag „Neu“ auswählbar sein.

Weiß jemand von euch wie man so was am besten realisiert? Muss man dazu evtl. das Clickereignis der ListBox abonnieren, so dass man dann im Ereignishandler prüfen muss ob die rechte Maustaste gedrückt wurde? Nur wie kann man ermitteln auf welchen Eintrag der ListBox geklickt wurde, so dass man das entsprechende Listenelement hat?

Gruß
Christoph

Hallo,

hab`s schon selbst hinbekommen.

Und zwar hab ich der ListBox einen neuen Eventhandler für das MouseDown Ereignis hinzugefügt. Dieser sieht wie folgt aus:

 public void listBox\_Kontaktpersonen\_MouseDown(object sender, MouseEventArgs e)
 {
 if (e.Button == MouseButtons.Right)
 {
 int iIndex = listBox\_Kontaktpersonen.IndexFromPoint(e.Location);

 if (iIndex != ListBox.NoMatches)
 {
 listBox\_Kontaktpersonen.SelectedIndex = iIndex;
 tsbKontaktBearbeiten.Enabled = true;
 tsbKontaktLoeschen.Enabled = true;
 }
 else
 {
 tsbKontaktBearbeiten.Enabled = false;
 tsbKontaktLoeschen.Enabled = false;
 }
 }
 }

Gruß
Christoph