Guten Abend,
ich habe ein ContextMenuStrip erzeugt. Dies weise ich einem Panel (eigene Klasse) zu, welches komplett mit Labels bedeckt ist. Wie kann ich beim rechtsklick auf das Label das ContextMS im Panel aufrufen? Mit den anderen Events geht das irgendwie ziehmlich einfach...:
public class ListenElementDetail : Panel(){
public ListenElementDetail (){
Label l = new Label();//erzeugt mehrere Label
PipeEvents(l);
}
private void PipeEvents(Control ctl) {
ctl.Click += new EventHandler(Evt_LabelClick);
ctl.DoubleClick += new EventHandler(Evt_LabelDblClick);
//weitere Events...
//ctl.ContextMenuStrip = //hier habe ich die Probleme...
}
//Exemplarisches Event - was das Event an den Parent weiter reicht (sagt man da so?)
private void Evt_LabelClick(object sender, EventArgs evt) {
this.OnClick(evt);
}
}
Vielleicht kann mi da ja jemand weiter helfen...
Danke 😃
Frokuss
Solange du keine eigene Mausklickbehandlung in untergeordneten Controls hast, wird eigentlich automatisch das Kontextmenü des übergeordneten Elements (sofern vorhanden, sonst weiter nach oben bis hin zur Form delegiert) aufgerufen.
Daher die Frage, warum du die Mausklicks weiter delegierst?
Du kannst aber natürlich auch dem Label dasselbe ContextMenuStrip
des Panel
s zuweisen:
ctl.ContextMenuStrip = ContextMenuStrip;
Danke dir 😃 Habe noch ein paar echt doofe Fehler gefunden... aber das mit dem MouseClick-Event hat mir weiter geholfen 😃
Frokuss