Bu makalemizde bir formda işlem yaparken açık olan bir formun metodunu nasıl çalıştıracağımız hakkında makale demeyelim de, ufak bir ipucu diyelim. Bu işlem için iki forma ihtiyacımız olacak Bir formda veritabanımıza kayıt eklerken başka bir formun listesini yenileyeceğiz.
Burada asıl amacımız bir form üzerinde çalışırken diğer bir formdaki metodu çalıştırmak. Aslında bu işlemi veritabanı kullandığımız bir uygulamada yapmış olsaydık daha anlaşılır olabilirdi. Ancak burada verilerimizi tanımladığımız static bir listeye ekleyeceğiz. Kayıtların listesini tutan formda veritabanına bağlanıyormuş gibi bizim listemize bakacak. Şimdi ilk önce Program classımıza public erişim düzeyinde static bir string Liste tanımlıyoruz. Bu listeyi ürünlerimizi eklemek için kullanacağız.
public static List<string> urunler;
Daha sonra ürün ekle formunda kullanıcı ürün eklediği anda diğer formdaki Guncelle metodunu çağıracak. Bu metod Program classımızdaki güncel listeyi alıp işleyecek. Bu işlemi için Application classının FormCollection tipindeki OpenForms özelliğinden faydalanacağız. Application.OpenForms["frmIslemler"] şeklinde açık olan formlar içerisinden yapacağımız formu buluyoruz.
((frmIslemler)Application.OpenForms["frmIslemler"]).Guncelle();
Daha sonra ((frmIslemler)Application.OpenForms["frmIslemler"]).Guncelle(); bu şekilde önce bizim aradığımız formu kullanacağımız forma cast ediyoruz. Ve aradığımız formdaki public erişim düzeyindeki Guncelle() metodunu çağırıyoruz. Bu metod ise içerisine eklediğimiz kodları çalıştırarak listeyi güncelliyor.
Örnek uygulamayı buradan indirebilirsiniz. İNDİR