Aktualisierung verhindert korrekte Textbox bearbeitung

DarkWoods

Grünschnabel
Hallo zusammen!

Ich habe da ein kleines Problemchen. Ich möchte ein Programm schreiben mit dem ich Daten in einer Access-DB bearbeiten kann. Dazu habe ich verschiedene Textfelder erstellt in denen die daten angezeigt werden sollen. Zur angenehmeren Verwendung habe ich eine automatische Suche eingebaut die bei jedem Tastendruck eine Abreage in der DB startet und den ersten Wert zurückliefert.

Textfeldeingabe: Ham

Abfrage: SELECT * FROM tabelle WHERE name LIKE 'Ham%'

Den Namen des ersten Datensatzes schreibe ich in das Textfeld und markiere alles was der User davon noch nicht eingegeben hat.

Textfeld: <nicht markiert>Ham</nicht markiert><markiert>burg</markiert>

Und genau da liegt mein Problem. Wenn ich das letzte Zeichen löschen möchte aktualisiert mir meine Abfrage den Rest wieder dazu, ich kann also nichts vom Ende löschen.

Kann mir jemand einen Tipp geben wie ich das Problem löse?

Ich habe schon überlegt immer die Länge des Textes zu speichern und wenn der kürzer wird die aktualisierung zu unterbrechen, aber das geht nicht wirklich.

Code:
		private void TBicao_TextChanged(object sender, System.EventArgs e)
		{
			if (aktAction)
				return;     // Abfrage damit das Feld nicht beim beschreiben nochmal aktualisiert wird

			int laenge = TBicao.Text.Trim().Length; // Länge des Textes für's markieren speichern

			if (laenge == 0)
				return;

			string SQL = "SELECT * FROM flugplatz WHERE icao LIKE '" + TBicao.Text + "%' ORDER BY icao;";
			results = DBConn.abfrage(SQL);   // DB-Abfrage über ein eigenes Objekt
			currResIndex = 0;

			if (results.Length == 0)
			{
				return;
			}
			
			this.sTextfelder(results[0]);      // Textfelder aktualisieren
			TBicao.Select(laenge, 4-laenge);  // Markierung setzen
			status.Text = DBConn.error;

			aktAction = false;
		}

Ich hoffe mal, der Code bringt schonmal ein wenig was :rolleyes:

Gruss

DarkWoods
 
Zurück