Witam, od jakiegoś czasu zaglądam na forum, a teraz przyszedł czas, żeby samemu o coś zapytać. Zajmuję się głównie programowaniem mikrokontrolerów w ANSI C, ale próbuję też swoich sił w c#.
Otóż walczę od kilku godzin ze zdarzeniami, może ktoś mógłby napisać, czy możliwa jest taka sytuacja żeby w procedurze zdarzenia Timer.Tick generować zdarzenie, które osługiwane byłoby w innych formularzach?
Konkretnie chodzi o to, że za pomocą Timer1 co kilka milisekund sprawdzam bufor kontrolki SerialPort. Jeśli coś jest, to pobieram i dalej obrabiam. Chciałbym, żeby w momencie kiedy przychodzi mi jakiś konkretny znak to w kilku innych formach programu generowane było zdarzenie, które informuje te formy, że nadeszły nowe dane.
Kombinuję z czymś takim - znalezione w jakichś internetowych kursach
public partial class Form1 : Form //okno główne programu
{
Form2 window2 = new Form2(); //okno wywoływane przez okno główne
Form3 window3 = new Form3(); //okno wywoływane przez okno główne
public delegate void DelegatZdarzenia();
public event DelegatZdarzenia Zdarzenie ;
public Form1()
{
InitializeComponent();
window2.Show();
window3.Show();
}
private void timer1_Tick(object sender, EventArgs e)
{
//odbiór danych z SerialPort
if (warunek) // nadszedł jakiś konkretny znak
{
Wygeneruj zdarzenie;
}
}
}
i okna otwierane przez program:
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
//Instalacja zdarzenia - dodanie uchwytu - nie bardzo wiem jak ?????
}
private void Alarm() //uchwyt zdarzenia
{
MessageBox.Show("Nadeszły dane");
}
}
Mimo kombinacji nie bardzo mi wychodzi.
Czy to, co chciałbym uzyskac w ogóle jest możliwe, jeśli tak to jak powinienem to ugryźć?
Z góry dzięki za info.