Prüfen ob sich Text geändert hat



  • Moinsn Gemeinde,

    folgendes Problem: habe eine Form mit mehreren( Anzahl wird sich noch ändern ) Textboxen. Jetzt soll vor dem schließen des Forms geprüft werden, ob sich der Text in einer der Textboxen geändert hat.
    Suche eine möglichst einfache Lösung, also in der Art: 'bool kann_zu = textBox1.geändert' oder so.
    Gibt es sowas einfaches in C#.NET?

    Thx in advance 👍

    grüssle 🙂



  • hat das control eventuell irgendein property, an dem das erkennbar ist?



  • c.rackwitz schrieb:

    hat das control eventuell irgendein property, an dem das erkennbar ist?

    😕 😕 😕

    ok, andersherum.
    Wie kann ich ermitteln, wieviele textBoxen auf einer Form sind, und wie ich in einer Schleife den Text der einzelnen textBoxen abfragen. Würde mir fürs erste reichen.

    grüssle 🙂



  • Servus,

    ich hatte mir mal was gebastelt um zu kontrollieren, ob alle Controls von bestimmten Typen leer sind.

    /*
    parentControl = MutterControl, darin liegen die anderen
    validTypes = zu prüfende Typen der Controls
    validCount = 3 Controls zu prüfen, wenn 0 dann sind alle gefüllt
    */
    
    private static bool ValidateControls(Control parentControl, Type[] validTypes, int validCount)
    {
    	if (parentControl == null) return false;
    
    	if (parentControl.Controls.Count <= 0) return false;
    
    	foreach (Control control in parentControl.Controls)
    	{
    		foreach (Type type in validTypes)
    		{
    			if (type == control.GetType())
    			{
    				if (control.Text.Length > 0)
    					validCount--;
    			}
    		}
    	}
    
    	return (validCount == 0 ? true : false);
    }
    
    // Aufruf
    
    Type[] validTypes = {typeof(TextBox), typeof(ComboBox)}; // Hier kannst du unterschiedliche Typen reipacken
    
    if (!ValidateControls(this.groupBoxSettings, validTypes, 3)) 
    {
    	MessageBoxOptions options = (MessageBoxOptions)0;
    
    	MessageBox.Show("Bitte füllen Sie alle Felder aus.", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error, 
    		MessageBoxDefaultButton.Button2, options);
    
    	return;
    }
    

    Vielleicht kannste das nach deinem Nutzen umbauen...

    mfg
    Hellsgore



  • @ Hellsgore

    Thx, werds testen

    grüssle 🙂



  • @ Hellsgore

    btw. was ist / macht dein 'groupBoxSettings' 😕

    grüssle 🙂



  • Servus,

    das ist das ParentControl...
    In seiner ControlCollection liegen die TextBox, ComboBox, Labels etc.

    Wenn du den Kram nur auf der Form liegen hast, musst du das als Parent angeben.

    mfg
    Hellsgore


Anmelden zum Antworten