Invoercontrole
hi,
@matthijsk: Mensen die een deftig antwoord willen geven komen niet tot bij deze vraag omdat ze zien dat hier al op gereageerd is. Dat is jammer voor deze persoon want hij is echt voor geen meter geholpen met jou antwoord.
@ verhaba
Ik heb snel even wat code geschreven zodat het voor jou wat sneller kan gaan.
Merk op in men code dat ik heel eenvoudig kan controleren op geldige invoer door gebruik te maken van de statische functie van de klasse Char (Char.isLetter() Char.isNumber() ). Om te controleren op geldige email tekens, controleer ik gewoon of de String een '@' of een '.' bevat, deze methode kan je eventueel nog verder uitbreiden.
[CPP]
//using statements en namespace weggelaten...
//aan de variabelenaam van de Textboxen kan je zien over welke controle het gaat
public partial class form : Form
{
public const String EMAIL_TEKENS = "@.";
public form()
{
InitializeComponent();
}
//Deze eventhandler toegevoegd aan het event 'leave' van de 4 TextBoxen
//Alle buttons zijn nu disabled
private void nieuweInvoer(object sender, EventArgs e)
{
/*Alle invoervelden worden steeds gecontroleerd na het verlaten van 1 van de invoervelden
* hier krijgen we steeds true of false*/
stringsButton.Enabled = controleerLetters(stringsTextBox.Text);
getallenButton.Enabled = controleerCijfers(getallenTextBox.Text);
emailButton.Enabled = controleerEmail(emailTextBox.Text);
//Als het cijfers OF leters bevat, bij een speciaal teken zal geen van beide 'true returne'
stringsGetallenButton.Enabled = (controleerCijfers(stringEnGetallenTextBox.Text) || controleerLetters(stringEnGetallenTextBox.Text));
}
private Boolean controleerLetters(String woord)
{
if (woord == "") //deze controle is nodig want bij het verlaten van 1 vd velden wordt alles gecontroleerd
return false;
Boolean correct = true;
foreach (Char k in woord) {
if (!char.IsLetter(k))
correct = false ;
}
return correct;
}
private Boolean controleerCijfers(String woord)
{
if (woord == "")
return false;
Boolean correct = true;
foreach (Char k in woord)
{
if (!char.IsNumber(k))
correct = false;
}
return correct;
}
private Boolean controleerEmail(String woord)
{
if (woord.Contains(EMAIL_TEKENS[0])) //@
{
if (woord.Contains(EMAIL_TEKENS[1])) //.
{
return true;
}
}
return false;
}
}
[/CPP]