Implementacja nowego zdarzenia

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;
          }
        }
    }

  }