ContextMenuStrip.SourceControl gibt immer null für Elemente der Untermenues zurück

07/07/2010 - 09:39 von Werner Perplies | Report spam
Hi,

Dies scheint ja ein recht betagtes Problem zu sein:

https://connect.microsoft.com/Visua...bsub-menus

Kann man dieses Problem irgendwie umgehen?

Ich habe verschiedene Textboxen und auch RichTextboxen und würde gerne
wissen, welches Control das Ergeignis auslöst.

Wie kann man diese Aufgabe lösen?

Danke.

Werner
Regulàre Ausdrücke testen?
http://www.weepee.de/de/wps_regex/wps_regex.html
www.weepee.eu
 

Lesen sie die antworten

#1 Thorsten Doerfler
07/07/2010 - 12:01 | Warnen spam
Am 07.07.2010 09:39, schrieb Werner Perplies:
Dies scheint ja ein recht betagtes Problem zu sein:

https://connect.microsoft.com/Visua...bsub-menus

Kann man dieses Problem irgendwie umgehen?

Ich habe verschiedene Textboxen und auch RichTextboxen und würde gerne
wissen, welches Control das Ergeignis auslöst.



Im Eintrag
https://connect.microsoft.com/Visua...-sub-menus

werden ja 3 mögliche Problemumgehungen genannt. Eine etwas komfortablere
Umsetzung der Variante die im Opening Ereignis das SourceControl
speichert, bietet die Ableitung eines eigenen ContextMenuStrip, das die
SourceControl Eigenschaft überschattet:

using System.Windows.Forms;

public class ContextMenuStripEx : ContextMenuStrip
{
private Control sourceControl;

public ContextMenuStripEx() : base()
{
}

public ContextMenuStripEx(
System.ComponentModel.IContainer container) : base(container)
{
}

public new Control SourceControl {
get { return sourceControl; }
}

protected override void OnOpening(
System.ComponentModel.CancelEventArgs e)
{
sourceControl = base.SourceControl;

base.OnOpening(e);
}
}

Die bereits existierenden ContextMenuStrip Verweise kannst Du durch
diese ContextMenuStripEx Variante ersetzen und solltest von allen Ebenen
aus, über bspw. contextMenuStrip1.SourceControl das passende Control
bekommen, durch das das Kontextmenü gerade angezeigt wird.

Thorsten Dörfler
Microsoft MVP Visual Basic

vb-hellfire visual basic faq | vb-hellfire - einfach anders
http://vb-faq.de/ | http://www.vb-hellfire.de/

Ähnliche fragen