Hallo,
ich möchte mir soetwas in der Art basteln:
RegExr: Learn, Build, & Test RegEx
Also eine kleines Programm, mit dem ich "live" (also ohne weiteren Buttonklick) einen Text anhand eines eingegebenen RegEx durchsuchen kann.
Problem 1:
Implementierung der Live-Suche
Problem 2:
Das Highlighten.
Meine Idee:
Ich habe einen Timer eingebaut, der die Funktion CheckForRegex ausführt.
Leider scheint er die RegEx nicht zu erkennen, jedenfalls passiert nichts, wenn ich das Programm ausführe.
Desweiteren weiß ich nicht, wie ich das Highlighten implementieren kann. Ich arbeite noch nicht so lange mit WPF. Im TextBox-Menü finde ich zwar die Eigenschaft TextDecoration, aber die gilt ja anscheinend für die komplette Textbox und lässt sich nicht nur auf einzelne Zeichen anwenden.
Achja:
Ich hatte bisher im Debugger immer ein Fenster, in dem ich schrittweise verfolgen konnte, was mit den Variablen/Objekten passiert. Das habe ich versehentlich weggeklickt und weiß jetzt nicht mehr, wo ichs wiederhole :-/
Edit: Ich arbeite mit Visual C# 2008.
ich möchte mir soetwas in der Art basteln:
RegExr: Learn, Build, & Test RegEx
Also eine kleines Programm, mit dem ich "live" (also ohne weiteren Buttonklick) einen Text anhand eines eingegebenen RegEx durchsuchen kann.
Problem 1:
Implementierung der Live-Suche
Problem 2:
Das Highlighten.
Meine Idee:
Ich habe einen Timer eingebaut, der die Funktion CheckForRegex ausführt.
Leider scheint er die RegEx nicht zu erkennen, jedenfalls passiert nichts, wenn ich das Programm ausführe.
Desweiteren weiß ich nicht, wie ich das Highlighten implementieren kann. Ich arbeite noch nicht so lange mit WPF. Im TextBox-Menü finde ich zwar die Eigenschaft TextDecoration, aber die gilt ja anscheinend für die komplette Textbox und lässt sich nicht nur auf einzelne Zeichen anwenden.
Code:
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
tbDisplay.Text = tbText.Text;
System.Windows.Threading.DispatcherTimer timer = new System.Windows.Threading.DispatcherTimer();
timer.Interval = TimeSpan.FromSeconds(0.5);
timer.Tick += CheckForRegex;
timer.Start();
}
private void CheckForRegex(object sender, EventArgs e)
{
string textIn = tbText.Text;
char[] regex = tbRegEx.Text.ToCharArray();
string[] splitted = textIn.Split(regex);
for (int i = 0; i < splitted.Length; i++)
{
if (splitted[i].Equals(textIn[i]))
{
tbDisplay.Text += splitted[i];
}
}
}
}
Achja:
Ich hatte bisher im Debugger immer ein Fenster, in dem ich schrittweise verfolgen konnte, was mit den Variablen/Objekten passiert. Das habe ich versehentlich weggeklickt und weiß jetzt nicht mehr, wo ichs wiederhole :-/
Edit: Ich arbeite mit Visual C# 2008.
Zuletzt bearbeitet: