У меня есть красные сообщения, но я не могу понять ... Мой код не имеет смысла, но я хочу иметь дело с обработчиком событий.Я ввожу данные в textBox и нажимаю кнопку Transform.Я ожидаю, что значение изменится в textBox, и, самое главное, я хочу прочитать сообщение "Браво !!!" .... У меня есть один класс SomeClassWithEvent
class SomeClassWithEvent
{
public event EventHandler ErrorMessage;
int data;
bool IsDataValid(int x)
{
if (x > 10) {return true; }
else {return false; }
}
public int Data
{
get {return data;}
set
{
if (!IsDataValid(value))
{
throw new ArgumentException("It is wrong data.", "value");
}
else { data = value;}
}
}
public SomeClassWithEvent(int data)
{
if (!IsDataValid(data))
{
throw new ArgumentException("It is wrong data.", "value");
}
Data = data;
}
public string TransformData(int y)
{
Data = y + 10;
OnMessage();
return Data.ToString();
}
private void OnMessage()
{
EventHandler handler = ErrorMessage;
if (handler != null) handler(this, EventArgs.Empty);
}
}
И еще Form1.cs
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
SomeClassWithEvent scwe = new SomeClassWithEvent(20);
scwe.ErrorMessage +=(s, e) => { MessageBox.Show("Bravo!!!"); };
}
private void button1_Click(object sender, EventArgs e)
{
int myData = Int32.Parse(textBox1.Text);
SomeClassWithEvent scwe1 = new SomeClassWithEvent(myData);
textBox1.Text = scwe1.TransformData(myData);
}
}
Но мой обработчик EventHandler всегда нулевой ... Что было сделано неправильно?Спасибо.