
Ekim 14, 2009 10:07 by
molks
Formdan forma veri aktarmanın çeşitli yolları var,biz bugun en doğru şekilde formdan forma veri nasıl aktarılabilir bunu başarmaya çalışıcaz.Şimdi bir windows uygulamasi açalim ve uygulamamiza yeni bir windows form ekleyelim,adi form2 olarak kalsın ;
şimdi ilk olarak yapmak istediğim şey Form1 deki bir butona tıklayınca Form2 nin açılması ve Form2 deki textbox'a yazdiğim değerin Form1 deki label'a geçmesi sağlamak.Şimdi böyle bir sorunun çözümünde ilk olarak aklima gelen şey Form1 in içinde form2 den instance almak (butonun click eventinde tabiyki) ve form2 üzerinden textbox'in text özelliğine ulaşip bunu form1'imdeki label'a setlemek.Gayet mantıklı bir yol gibi gözüküyor,deneyelim nasıl oluyormuş görelim ;
ilk olarak form2 üzerindeki textbox'in access modifier'i default olarak private,yani şuan için sadece kendi class'i içerisinde geçerli.Bizim onu önce public yapmamız gerekiyor.

bu arada form2 nin görüntüsü şu şekilde ;

şimdi kodlara geçmeden önce bilmemiz gereken ShowDialog() methodunun açtıgı formun bizden bir dialogResult bekleyebilmesidir.eğer daha önce Notpad tarzi bir uygulama yapmak için dialogs tabının altındaki kontrolleri kullandıysanız,bunu ordada kullanmış olabilirsiniz.Misal açılan pencereyede x işaretine basıp çıkmak isterseniz geriye dialogResult Cancel döner.Bende eğer cancel ise textbox a yazilan değeri çekiyim ;

Bu işlemin sonunda eğer textbox a bir değer yazıp arkasından çarpiya basarak formu kapatırsanız,yazan yazının form1 deki label'a geçtiğiniz göreceksiniz.Ancak şimdi durup 2 sn bir düşünelim textbox'i public yapmakla ram'e nasıl bir yük getirdiğimize bir bakalım ;

hal böyleyken textbox'in text inden dönen değeri form2 üzerinde "DIŞARIDAN" sadece get ile alınabilecek bir hale getirsem çok süper olabilir diye düşünüyorum - evet encapsule edicez : )) form2'nin üzerine bir buton ekleyin bu sefer buton'dan dönen dialogResult ok 'yi kullanıcaz;


ve form1 ;

böylece minumum maliyetle form2 den form1 e veri aktarmayı başardık.yazinin 2.bölümünde ise form1 den direk olarak form2 ye veri nasıl atarız ona bakacağız.
85396cc6-6921-425b-8398-973c48c56d81|6|5.0