Programlama ve Elektronik

Programlama ve Elektronik (http://www.proelo.com/)
-   Konu ve Anlatımlar (http://www.proelo.com/konu-ve-anlatimlar-86/)
-   -   C#'da Formlar Arası Veri Alış-Verişi (http://www.proelo.com/konu-ve-anlatimlar-86/cda-formlar-arasi-veri-alis-verisi-696/)

McDroPp 17. May 2008 03:36 AM

C#'da Formlar Arası Veri Alış-Verişi
 
C# da Formlar arası veri taşınması
Bir formdan diğer bir form çağrılması çağrılan formdan girilen verilerin ana formda alınması. Bu dokümanı gerek programlama.com un formunda gelen sorularda gerekse bana doğrudan gelen sorular üzerine yazma ihtiyacı duydum. Bu dokümanda oluşturduğumuz bir c# windows uygulamasında birden fazla formu nasıl kullanacağımızı formlar arasında veri alışverişini nasıl yapacağımızı anlatacağım.

Microsoft .net i ya da sharpdevelop u açtığımızda windows uygulaması dediğimiz de bu derleyiciler ekrana bir main form getirir. Eğer uygulamaya koyacağımız program bir den fazla formu gerektiriyorsa solution explorer penceresinde add new item sekmesi ile ikinci bir form oluşturabiliriz. Bu oluşan ikinci form tamamen birinci formdan ayrı olarak düşünebiliriz. Bu form sınıf hiyerarşisi içerisinde düşündüğümüzde ayrı bir sınıf olarak gözükür. Biz bu formu ana formumuzda o tipte nesne oluşturararak kullanabiliriz.

Ana formumuzun ismi form1 ikinci oluşturduğumuz form ise form2 isminde olsun.
Form1 de form2 cinsinde bir nesne oluşturmak için.
Form2 ikincipencere=new Form2();
şeklind tanımlama yapabiliriz. Burada Form2 tipinde bir nesne oluşturuyoruz bu nesnenin ismi ise ikincipencere dir. Bu pencereyi ekrana çıkarmak için ikincipencere.Show() yazılır.

Yukarıda anlatıklarımızla ikinci bir form oluşturduk ve bunu ekrana çıkardık. Şimdi ise ikinci formdan ana forma nasıl veri taşınacağını anlatacağız. Bunu yapmak için global değişkenler atamalıyız. C# da global değişkenin tanımlaması static sözcüğü kullanılır. Aşağıda tanımladığımız değişkenler gösterilmektedir.
public static int intdeger;
public static double doubdeger;
public static string stdeger;

İkinci formda ise bu değişkenlere
Form1.intdeger=Convert.ToInt32(textBox1.Text);
Form1.doubdeger=Convert.ToDouble(textBox2.Text);
Form1.stdeger=textBox3.Text;
şeklinde atama yapabiliriz.


Bütün Zaman Ayarları WEZ +3.5 olarak düzenlenmiştir. şu Anki Saat: 10:06 AM .