Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[C#] TreeViewNode & ContextMenu - shortcuts werken niet

Pagina: 1
Acties:

  • Knakker
  • Registratie: April 2000
  • Laatst online: 06:28
Ik heb een TreeView waar ik aan de meeste nodes programmatisch een ContextMenu heb gehangen. De inhoud daarvan hangt af van het nodetype.

Dit werkt prima. Behálve dat de shortcut keys die ik meegegeven heb in het ContextMenu niet werken. Als ik één van de verschillende ContextMenu's aan de TreeView zelf hang, doen de shortcut keys het wel - je zou dus zeggen dat het niet in de definitie van het ContextMenu zit.

Waar kan dit aan liggen? De TreeView zelf heeft geen ContextMenu dat zou kunnen "overrulen" o.i.d.

Alvast bedankt!

[edit]
Oh ja, nog iets estethisch :P Weet iemand hoe ik programmatisch een gradient in het linkergedeelte van het ContextMenu plaats? Als je bijv. in VS.NET 2008 met de rechtermuisknop op de Solution Explorer klikt, heeft de linkerkant een lichtblauw -> blauw gradient. Dat wil ik ook ;)

[ Voor 30% gewijzigd door Knakker op 13-04-2008 14:05 ]

Geef mij maar een Warsteiner.


  • Koppensneller
  • Registratie: April 2002
  • Laatst online: 14:25

Koppensneller

winterrrrrr

Misschien moet je eens kijken welk component de shortcuts afhandelt. Als dat het form is zul je ze waarschijnlijk door moeten geven aan de Treeview.

  • Knakker
  • Registratie: April 2000
  • Laatst online: 06:28
KoppenSneller schreef op zondag 13 april 2008 @ 14:04:
Misschien moet je eens kijken welk component de shortcuts afhandelt. Als dat het form is zul je ze waarschijnlijk door moeten geven aan de Treeview.
Het enige wat ik kon bedenken was dat mijn form zelf een _KeyDown event heeft, maar als ik die verwijder dan doen ze het nog steeds niet.

Hoe kom ik erachter welke component de shortcuts afhandelt?

Geef mij maar een Warsteiner.


  • EfBe
  • Registratie: Januari 2000
  • Niet online
Bij mijn weten moet je de contextmenu op de treeview plaatsen en dat af laten hangen van de geselecteerde node. Dus je selecteert node X, dan heeft treeview contextmenu van x. etc.

Creator of: LLBLGen Pro | Camera mods for games
Photography portfolio: https://fransbouma.com


  • Knakker
  • Registratie: April 2000
  • Laatst online: 06:28
Hmm, dat doe ik liever niet. Dat betekent toch dat ik in dat geval met één menu moet gaat werken, welk ik continu moet aanpassen (afhankelijk van de context) en dan moet ik bovendien ook nog gaan opletten dat de gebruiker geen shortcut intoetst van een functie op een moment dat dat niet kan.

Is er geen schonere manier?

Wat is de event waar ik het contextmenu dat getoond gaat worden kan aanpassen net voordat het getoond wordt?

Geef mij maar een Warsteiner.


  • EfBe
  • Registratie: Januari 2000
  • Niet online
Knakker schreef op zondag 13 april 2008 @ 17:02:
Hmm, dat doe ik liever niet. Dat betekent toch dat ik in dat geval met één menu moet gaat werken, welk ik continu moet aanpassen (afhankelijk van de context) en dan moet ik bovendien ook nog gaan opletten dat de gebruiker geen shortcut intoetst van een functie op een moment dat dat niet kan.

Is er geen schonere manier?
Wat is de event waar ik het contextmenu dat getoond gaat worden kan aanpassen net voordat het getoond wordt?
Het is heel simpel :) Je verandert het menu in de AfterSelect event handler van de treeview. Immers: je kunt pas een node context menu laten zien wanneer er een node is geselecteerd. Dus je hebt dan alles in 1 routine en het gaat altijd goed: wanneer een node is geselecteerd -> zet bijbehorend menu. Geen node geselecteerd -> treemenu == null.

Creator of: LLBLGen Pro | Camera mods for games
Photography portfolio: https://fransbouma.com


  • Knakker
  • Registratie: April 2000
  • Laatst online: 06:28
EfBe schreef op zondag 13 april 2008 @ 19:11:
[...]

Het is heel simpel :) Je verandert het menu in de AfterSelect event handler van de treeview. Immers: je kunt pas een node context menu laten zien wanneer er een node is geselecteerd. Dus je hebt dan alles in 1 routine en het gaat altijd goed: wanneer een node is geselecteerd -> zet bijbehorend menu. Geen node geselecteerd -> treemenu == null.
8)7 Dat had ik natuurlijk zelf ook kunnen bedenken (vooral omdat ik de AfterSelect ook al ergens anders voor gebruik). Bedankt!

Geef mij maar een Warsteiner.

Pagina: 1