Klasa (kontrolka) ma dziedziczyć z TextBox i umożliwiać obsługę zdarzenia polegającego na próbie wpisania w okienko edycji niedozwolonego słowa .
public class PurytanskiTextBox : TextBox
{
//lista zakazanych słówek
string[] zakazane = new string[] { "ala", "ma", "kota" };
//nowe zdarzenie realizujące rozszerzenie funkcjonalności zwykłego TextBox'a
public event EventHandler JestZakazaneSlowo;
//Konstruktor z przypisaniem obsługi odziedziczonego zdarzenia TextChanged
public PurytanskiTextBox()
{
this.TextChanged += PurytanskiTextBox_TextChanged;
}
// wewnętrzna obsługa zdarzenia TextChanged, w ramach której uruchamiany jest
// o ile istnieje EventHandler nowego zdarzenia JestZakazaneSlowo
void PurytanskiTextBox_TextChanged(object sender, EventArgs e)
{
foreach (string s in zakazane)
if ((sender as TextBox).Text.Contains(s))
{
if (JestZakazaneSlowo != null)
{
JestZakazaneSlowo(sender, e);
break;
}
}
}
}