Warum löst das PropertyGrid nicht Tastatur- / Mausereignisse?

8

Warum wird das nie aufgerufen?

%Vor%

Dies scheint für Mausereignis dasselbe zu sein

Ich habe in einigen Foren gelesen, dass PGrid es schwierig macht, solche Ereignisse auszulösen, wenn sie sie von Control übernehmen, aber nicht wirklich hochhebt. ist das wahr ? Wenn ja, wie kann man das umgehen?

EDIT 1:
Da dies "regulär" zu sein scheint, finde ich es sehr leicht von MS, dies nicht explizit in der MSDN-Referenz des propertyGrid anzugeben Klassen- und Verlassen-Ereignisse "wie sie sind", als ob sie verwendbar wären, während sie es nicht sind. Schwierige Dinge wie diese werden zumindest normalerweise in "Notizen" innerhalb der Referenzen angegeben.

EDIT 2:
Ich kodiere gerade einen Workaround. Ich werde es bald veröffentlichen.

    
Mehdi LAMRANI 14.02.2011, 11:36
quelle

3 Antworten

2

Die Eigenschaft PropertyGrid KeyDown ist als Browsable(false) gekennzeichnet - vermutlich können wir daraus schließen, dass sie nicht von sich aus unterstützt wird, sondern tatsächlich als Nebeneffekt von ihr vorliegt Vererbungshierarchie.

Interessanterweise wird das Attribut EditorBrowsable (welches auch ein Designer-Indikator für Intellisense und dergleichen ist) als EditorBrowsableState.Advanced festgelegt - wobei wir EditorBrowsableState.Never erwarten würden, sollte die vorherige Annahme wahr sein.

Einige Informationen von MSDN Foren umreißt das warum dieser Situation:

Aus dem Tool UI-Spion können wir sehen, dass das PropertyGrid nur ein ist Panel und es besteht aus drei Windows-Steuerelementen. Unser KeyDown-Ereignis sollte von der untergeordneten Steuertabelle verarbeitet werden. Die Struktur:

%Vor%

Die vorgeschlagene Lösung (ebenfalls in der MSDN-Verknüpfung) zur Überwindung dieses Problems besteht darin, native Systemaufrufe zum Abrufen von Fenster- / Steuerinformationen, Unterklasse NativeWindow und Überschreiben der WndProc -Methode zum Behandeln der von Ihnen gewünschten Ereignisse% co_de zu verwenden % in diesem Fall.

    
Grant Thomas 14.02.2011, 12:09
quelle
0

Sie können dies überschreiben aus der Unterklasse von PropertyGrid , um einige Schlüsselinformationen aus der Windows-Nachricht

zu erhalten %Vor%     
xyshyniaphy 07.08.2012 06:09
quelle
-1

CSharp PropertyGrid-Ereignisse

%Vor%     
Zack 12.09.2016 09:28
quelle

Tags und Links