Jag vill hindra att texten i en textbox ändras om inte vissa krav uppfylles. Jag vill inte disabla textboxen utan vill alltså fånga upp det event som utlöser ändringen av Text-propertien på TextBoxen och stoppa det. Du kan använda dig av en boolean variabel och när din id textbox ändras så kollar du om din variabel är satt till true. Är den det så är det ok att skriva, annars så kommer varningsmedelandet upp. När användaren sen laggt till en produkt så sätts variabeln till false. Hej. Jikko, men mitt problem är att jag oavsett vad t.ex. en bool-variabel är satt till inte *kan* hindra användaren från att ändra textboxen (annat än genom att sätta textbox.enabled = false, men det är ingen bra lösning) :(Hindra en TextBox från att ändras vid knapptryckning
För att bättre förstå vad jag vill så kan jag beskriva scenariot:
En användare har fyllt i ett id på en leverantör och fortsätter sedan med att lägga till produkter som förknippas med denna leverantör. Om användaren plötsligt går tillbaka till leverantörsrutan och skriver dit en siffra till eller trycker på backspace (uppdatering av aktuell leverantör sker direkt med TextChanged eventet) så vill jag varna användaren för att de produkter han hittills lagt till kommer att rensas bort om han byter leverantör. Om användaren då avbryter genom att klicka cancel så skall innehållet i TextBoxen förbli oförändrat.
Någon som kan hjälpa mig?Sv: Hindra en TextBox från att ändras vid knapptryckning
Sv: Hindra en TextBox från att ändras vid knapptryckning
Du kan implementera den klassiska IsDirty hanteringen. Där du kontrollerar om datan är ändrad. Antingen kan du göra en IsDirty under eventet eller när man trycker på en knapp som tar dig till något annat. En save knapp eller liknande.
Du kan lösa din IsDirty hantering på många sätt.
Kort om detta:
1... Spara undan värdet i en kopierad variabel eller liknande och jämför om det förändrats. (Detta skyddar dig bara på klientsidan. Inte om någon annan fyller i eller ändrar någon annan information under samma leverantör.)
2... Du kan vid sparandet eller ändrandet jämföra varje kolumn värde om den justerats. Stämmer de ej så får du en IsDirty (Detta skyddar dig mot att någon anna hunnit före eller ändrat under tiden.)
3... Du kan vid öppnining av ifyllandet av id, leverantör samt artikler plocka ett datum som du sparar ner på serversidan. När datan sparas sparar du ner datumet, har någon varit inne o ändrat kommer du att få missmatch på datumen och du vet då att datan IsDirty.
Det finns massor med andra sätt, är lite trött nu, detta är några jag bara tog ur luften.
//Johan NSv: Hindra en TextBox från att ändras vid knapptryckning