Hi,
ich muss ein bissl ausholen, um mein Problem zu beschreiben. Ich hoffe, ihr habt Geduld.
Ich führe eine Log Datei, die ich zeilenweise in einer einspaltigen DatagridView anzeige. Es können Tausende von Zeilen anfallen.
Diese Log Datei will ich natürlich nicht "durchlesen", sondern üblicherweise suche ich nach bestimmten Strings und zeige dann die gefundenen Zeilen nacheinander an. Das kann man sehr einfach kodieren.
Das Problem ist aber, dass es schwer zu sehen ist, WO das Suchargument in der Zeile gefunden wurde. Die einzelnen Zeilen können mehr als 200 Bytes lang werden und enthalten zudem oft "kryptische" Texte.
Ich habe deshalb ein "Found" Feld befüllt. Da sieht man das Suchargument und die "Umgebung" (30 Bytes vorher und 30 Bytes nachher). Leider ist selbst dieses Found Feld nicht so einfach lesbar ... vor allem weil der String auch am Anfang oder am Ende gefunden werden kann. Ich habe deshalb das Search Argument im Found Feld "selektiert", dann erscheint es blau hinterlegt. Jetzt ist die Sache gut lesbar. (s. Anhang)
Das funktioniert soweit so gut. Aber es gibt ein Problem:
Sobald sich
Durch das
Wenn ich
Das ist mein Problem: wie kann ich den Focus auf
Der Found String muss natürlich keine TextBox sein ... es kann sich um ein geeignetes anderes Control handeln, etwa ein Label. Aber auch nach langem Überlegen ist mir da nix Gescheites eingefallen.
Ich hoffe, ich habe mein Problem verständlich machen können. Hat jemand bessere Ideen ?
LG
Peter
ich muss ein bissl ausholen, um mein Problem zu beschreiben. Ich hoffe, ihr habt Geduld.
Ich führe eine Log Datei, die ich zeilenweise in einer einspaltigen DatagridView anzeige. Es können Tausende von Zeilen anfallen.
Diese Log Datei will ich natürlich nicht "durchlesen", sondern üblicherweise suche ich nach bestimmten Strings und zeige dann die gefundenen Zeilen nacheinander an. Das kann man sehr einfach kodieren.
Das Problem ist aber, dass es schwer zu sehen ist, WO das Suchargument in der Zeile gefunden wurde. Die einzelnen Zeilen können mehr als 200 Bytes lang werden und enthalten zudem oft "kryptische" Texte.
Ich habe deshalb ein "Found" Feld befüllt. Da sieht man das Suchargument und die "Umgebung" (30 Bytes vorher und 30 Bytes nachher). Leider ist selbst dieses Found Feld nicht so einfach lesbar ... vor allem weil der String auch am Anfang oder am Ende gefunden werden kann. Ich habe deshalb das Search Argument im Found Feld "selektiert", dann erscheint es blau hinterlegt. Jetzt ist die Sache gut lesbar. (s. Anhang)
Das funktioniert soweit so gut. Aber es gibt ein Problem:
Sobald sich
txtSearch.Text
ändert, wird die Suche sofort ausgeführt. Man kann also während der Eingabe eines Suchstrings immer gleich die erste gefundene Zeile sehen. Damit erkennt man insbesondere, ob ein Suchargument nicht mehr gefunden wird.Durch das
txtFound.focus()
verliert die Eingabebox txtSearch
aber den Focus. Damit kann ich in das Eingabefeld nicht "flüssig" schreiben, weil der Cursor ständig wegspringt. Das macht die Sache extrem unhandlich. Wenn ich
txtFound.focus()
aber weglasse, dann behält zwar das Eingabefeld den Focus aber jetzt wird die blau hinterlegte "Selection" nicht mehr angezeigt, weil txtFound keinen Fokus hat. Das ist mein Problem: wie kann ich den Focus auf
txtSearch
belassen und trotzdem den "Found String" mit farbig hinterlegtem Suchargument anzeigen.Der Found String muss natürlich keine TextBox sein ... es kann sich um ein geeignetes anderes Control handeln, etwa ein Label. Aber auch nach langem Überlegen ist mir da nix Gescheites eingefallen.
Ich hoffe, ich habe mein Problem verständlich machen können. Hat jemand bessere Ideen ?
LG
Peter
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Peter329“ ()