Niemand_Anders schreef op maandag 16 juni 2008 @ 09:31:
Ja, dat is normaal en geen bug. Als je namelijk in de MSDN had gekeken kan had je namelijk kunnen zien aan het voorbeeld dat er eerst op 'null' wordt gecontroleerd en daarna of de lengte groter dan 0.
In dat geval kun je namelijk e.CancelEdit op 'true' zetten (of e.Node.EndEdit(false) aanroepen) en dan wordt de oorspronkelijk tekst van je label hersteld.
Maar ik denk dat het verstandig is dat je eens in de MSDN de voorbeeld code van TreeView.AfterLabelEdit moet bekijken.
wat zegt de e.label == null dan volgens jou? Ik had al lang natuurlijk naar de code uit MSDN gekeken en voor een groot gedeelte overgenomen maar ik snap niet waarom de e.Label null is. Het MSDN voorbeeld komt heel raar over:
code:
1
2
3
4
5
6
7
| .....afterlabelevent(object sender, NodelLabelEditEventArgs e)
{
if (e.Label != null)
{
//doe iets
}
} |
ik had verwacht dat de e.Label de nieuwe, actuele waarde zou bevatten
ik krijg de e.Label dus niet op != null
ps: het is wel een bijzonder geval, ik voeg een node toe vanuit programmacode en geef 'm een naam en zet 'm in edit mode. Wat de e.Label feitelijk zegt is: heeft de gebruiker de node-label veranderd? Dat is bij mij dus niet het geval, vanuit de edit-mode geef ik direct een enter. Feitelijk heb ik geen wijziging uitgevoerd, waardoor de e.Label null is. Zodra ik ook maar iets wijzig op de node-label is de e.Label wel != null. In de MSDN staat dit niet duidelijk uitgelegd.
[
Voor 20% gewijzigd door
DrDelete op 16-06-2008 09:48
]