Witajcie,
Mam pewien problem. Stworzyłem sobie własną klasę dziedziczącą po TextBox. Chciałbym zmienić kolor tła mojego textBoxa jeśli wprowadzany tekst będzie niezgodny z wyrażeniem regularnym. Kontrola wyrażenia regularnego działa (przetestowane za pomocą tooltipa ;) ), jednak nie mogę zmienić koloru tła. Zależy mi aby właśnie tak się zachowywał mój TextBox. Podpowie ktoś jak to rozwiązać?
Poniżej kod klasy:
using System;
using System.Windows.Controls;
using System.Windows.Input;
using System.Text.RegularExpressions;
class ptKosz : TextBox
{
String regex;
public ptKosz(int jakaWalidacja)
{
if (jakaWalidacja == 1)
this.regex = "^[1-9][0-9]?[0-9]?$"; //speed
else if (jakaWalidacja == 2)
this.regex = "^[1-9][0-9]{2}[0-9]?$"; //rpm
else if (jakaWalidacja == 3)
this.regex = "^[1-9][0-9]?$"; //speedup, speeddown, nacisk
else if (jakaWalidacja == 4)
this.regex = "^[1-8]{1}$"; //ilość próbek
Width = 120;
}
protected override void OnTextInput(TextCompositionEventArgs e)
{
base.OnTextInput(e);
if (!Regex.IsMatch(Text, regex))
ToolTip = "nie pasuje";
else
ToolTip = "pasuje";
}
protected override void OnTextChanged(TextChangedEventArgs e)
{
base.OnTextChanged(e);
if (!Regex.IsMatch(Text, regex))
ToolTip = "nie pasuje";
else
ToolTip = "pasuje";
}
}