Witam wszystkich,
z góry przepraszam jeżeli wybrałem zły dział na ten wątek do rzeczy...
piszę aplikację na urządzenie mobilne w środowisku compact framework. Program składa się dwóch formów: Form1 i Form2, każdy z formów zawiera przycisk do przełączania się między tymi formami, chcę ażeby poprzez naciśnięcie na przycisk bieżący form się schował a pokazał drugi(wcześniej schowany). Napisałem kod w taki sposób ażeby za każdym razem otwierać(pokazywać) istniejącą instancje forma a nie tworzyć za każdym naciśnięciem na przycisk nowe instancje tej samej formatki, postanowiłem więc skorzystać z właściwości Owner.
Kod:
//Form 1:
public partial class Form1 : Form
{
private Form2 form2 = new Form2();
private void buttonOpenForm2_Click(object sender, EventArgs e)
{
form2.Owner = this;
form2.ShowDialog();
}
}
//Form 2:
public partial class Form2 : Form
{
private void Form2_Load(object sender, EventArgs e)
{
this.Owner.Hide(); //chowam okno właściciela czyli Form1 i tu wszystko jest ok!
}
private void buttonOpenForm1_Click(object sender, EventArgs e)
{
this.Owner.ShowDialog(); //tutaj program się wysypuje
}
}
Problem jak wyżej w kodzie, podczas obsługi zdarzenia przycisku znajdującego się na Form2 zostaje zgłoszony wyjątek, co jest o tyle wg mnie dziwne, że przy wywoływaniu metody Hide dla tej samej właściwości Owner wszystko działa dobrze. Może ktoś spotkał się z podobnym problemem? Proszę o pomoc.