Entwickler-Ecke

C# - Die Sprache - brauche hilf mit dem errorprovider


antwortensucher - Mi 12.03.08 11:46
Titel: brauche hilf mit dem errorprovider
kk

Ich habe es doch noch geschafft den errorProvider2 zum laufen zu bringen.

jetzt will ich nur mehr eines wissen.

Wie baue ich den errorprovider so um das er schaut das der text kleiner als 24 Buchstaben und das er noch schaut ob eh keine zahlen oder buchstaben drinnen sind ?




C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
        private void ParLastname_Validating(object sender, CancelEventArgs e)
        {
            if (ParLastname.Text.Length < 24)
            {
                errorProvider2.SetError(ParLastname, "Kann nicht länger als 24 Buchstaben sein!");
            }
            else
                errorProvider2.SetError(ParLastname, "");
        }


Moderiert von user profile iconChristian S.: Quote- durch C#-Tags ersetzt


Christian S. - Mi 12.03.08 12:34

Das mit der Länge hast Du ja fast schon, Du musst nur "größer"- statt ein "kleiner"-Zeichen verwenden. Denn der Fehler soll ja gezeigt werden, wenn die Länge größer als 24 ist. :)

Und das mit den Zahlen und Buchstaben verstehe ich nicht. Was soll denn drin sein? :gruebel:
Denk immer dran, dass wir im Forum Dein Projekt nicht kennen ;)


antwortensucher - Mi 12.03.08 13:18

tut mir leid das mit dem zeichen < Zeichen war einfach schreibfehler ^^ ich meinte natürlich >

Ich möchte das er auch kontrolliert wenn ich eine Zahl eingebe das ein error erscheint. ^^
Will es zu dem errorProvider dazu bauen. ^^

mfg antwortensucher


Christian S. - Mi 12.03.08 13:28

Kann man wahrscheinlich am einfachsten mit einem Regex machen:

Hier mal der Chrome-Quelltext Umsetzung in C# sollte einfach sein.

Delphi-Prism-Quelltext
1:
2:
3:
var rx := new Regex('\d'); //Regex für Zahl
if rx.IsMatch(ParLastname.Text) then
  errorProvider2.SetError(ParLastname, 'Es dürfen keine Zahlen eingegeben werden!');


Kha - Mi 12.03.08 14:11

[Hier stand Lötzinn]

Hmm, jetzt muss ich noch irgendetwas anderes Sinnvolles schreiben *g*.
In solchen Fällen bietet sich die statische IsMatch-Methode an: spart eine Zeile :zwinker: und der Regex wird gecacht.


antwortensucher - Mi 12.03.08 15:07

Ich bin einen Schritt näher gekommen dennoch habe ich es nicht geschafft ^^ hab noch nie was von Chrome in C# umgewandelt.


C#-Quelltext
1:
2:
3:
4:
using System.Text.RegularExpressions;
             Regex r = new 
             Regex(@"[0-9]"); 
             MatchCollection matchesInDoc = r.Matches();


Das habe ich daweil gemacht und bleibe stecken

Moderiert von user profile iconChristian S.: Quote- durch C#-Tags ersetzt


Christian S. - Mi 12.03.08 15:13

Wo siehst Du bei mir eine MatchCollection? :gruebel:
Die einzige Schwierigkeit scheint zu sein, bei der if-Anweisung im Chrome-Quelltext das "then" wegzulassen und 'ne Klammer drum zu machen :zwinker:


antwortensucher - Mi 12.03.08 15:33

tut mir leid dachte MatchCollection = IsMatch :D

Hab noch nie eine IsMatch Methode gesehen ^^


Kriegs irrgend wie nicht auf die Reihe :(

Ich habe es so ähnlich gemacht wie bei meinem oberen errorProvider2

mfg antwortensucher


Christian S. - Mi 12.03.08 15:39

Wo ist denn das Problem? :nixweiss: Ich hab ein bisschen den Eindruck, Du willst Dir keine richtige Mühe machen und hättest am liebsten, wenn ich Dir den fertigen Code gebe. :?

Hast Du den Chrome-Code denn jetzt nach C# portiert? Und dass Du die "IsMatch"-Methode nicht kennst, ist ja okay - aber dann schlag sie doch bitte in der Doku nach! Dazu ist die da!


antwortensucher - Mi 12.03.08 16:24

tut mir leid christian aber so bin ich nicht, ich will schon etwas zum nachdenken haben aber mit dem chrome quelltext kenn ich mich nich aus der hat mir nur ein bisschen geholfen und zwar Regex..

mfg antwortensucher


Christian S. - Mi 12.03.08 16:33

Mal mit dem Hinweis Khabarakh:


C#-Quelltext
1:
2:
3:
4:
if (Regex.IsMatch(ParLastname.Text, @"\d"))
{
   errorProvider2.SetError(ParLastname, "Es dürfen keine Zahlen eingegeben werden!");
}


Das solltest Du jetzt aber fast schon per Copy & Paste übernehmen können ;-)


antwortensucher - Mi 12.03.08 16:41

das war ein guter tipp danke dir :D

mfg antwortensucher