145 Görüntülenme

C# Formlar Arası Veri Nasıl Gönderilir?

C# Formlar Arası Veri Nasıl Gönderilir?
4 (80%) 1 Oy

C# Formlar Arası Veri Nasıl Gönderilir? yazımız ile C#’a devam edelim. C# formlar arası veri aktarımı 4 farklı yöntemden bashedeceğim. Tabi önermediğim yöntemlerde var bu 4 yöntem arasında. Ancak ne var ki bazen kullanmamız gerekebiliyor. Bu sebeple en az bir kere kullandığım formlar arası veri gönderme ile ilgili tüm yöntemleri yazacağım.

 

C# hakkındaki diğer derslerim için tıklayabilirsiniz.

1. YOL – SQL ile formlar arası veri gönderme

İşte bu yolu sürekli kullanmamanızı öneririm. İlla ki gereken bir işleminiz olabilir. O zamanki durum farklı bir durum. Bu yöntemin nasıl yapılacağını kod ile göstermeme gerek yok sanırım. Sql de bir tablo açarsınız. Aktarılacak verileri o kısma yazarsınız ve diğer formlardan çağırırsınız. Önermememin sebebi ise performans açısından büyük sıkıntılar doğuracağıdır. Bu c# formlar arası veri aktarımı daha çok exe ler yani programlar arasında veri göndermede yaygın kullanılır.

 

2. YOL – Form açarken formlar arası veri gönderme

Bu yöntem belki de en çok kullanacağımız c# formlar arası veri alışverişi yöntemdir. Bu kısa bir kod ile hemen gösterelim. Tabi bir iki küçük işlemimiz daha var. İlk olarak veriyi alacak olan (Form2 diyelim) formda bir public değişken tanımlıyoruz.

Public string KullaniciAdi = string.empty;

Şimdi de veriyi gönderecek olan formdan, veriyi alacak olan formu açalım.

//Yazım Şekli 1
Form2 fr =  new Form2();
fr.KullaniciAdi = AlinanKullaniciAdi;
//Değişkeni gönderecek olan formda public değişkene gerek yoktur.
//Normal bir değişken gönderebiliriz.
fr.ShowDialog();
//Yazım Şekli 2
Form2 fr =  new Form2()
{
KullaniciAdi = AlinanKullaniciAdi
};
fr.ShowDialog();

Yukarıdaki örnekte gördüğünüz gibi gayet kısa ve kolay bir işlemdir. Ayrıca örnekte iki farklı yazım şeklini verdim. Ben hep yazım şekli 2 olanı kullanıyorum.

3. YOL – Form kapatırken formlar arası veri gönderme

Bu c# ta formlar arası veri aktarımı işlemi 2. Yolun tersi gibidir. Bu yöntemi genellikle işlem formu açıp işlem sonunda önceki forma veri göndermek için kullanırız.

Örnek vermek gerekirse; Bir personel listeniz var. Bu listeden bir ismi kontrol ettiniz baktınız yok. Eklemeniz lazım. Bu liste formu üzerinden (button yada contexmenustrip) kayıt ekleme formunu açtınız. Kaydı yaptınız. Ancak kayıt ekranı kapandığında personel ekleme işlemi yapıldıysa listeyi güncellememiz gerekir değil mi? Peki bunu nasıl yapacağız? İşte kayıt formu kapanırken liste formuna veri göndermemiz gerekiyor ki o veriye göre bir kontrol yapıp listeyi güncelleyelim.

Bu yöntemde veri göndereceğimiz formda (yani liste formu) public değişken tanımlamamıza gerek yok. Bu sefer veriyi gönderecek formda (yani kayıt formu) public değişken olması lazım.

Yukarıda verdiğimiz senaryoya göre kodlarımızı yazalım.

PersonelKayit fr =  new PersonelKayit()
{
PersonelKodu = YeniPersonelKodu
//PersonelKodu değişkeni PersonelKayit formunda açtığımız pıblic değişkendir.
};
fr.ShowDialog();
texbox1.Text = fr.PersonelKodu;
textbox2.Text = fr.PersonelAdi;
// kayıt işleminden sonra personel kodunu texbox1' e, personel adini textbox2' ye yazdırdık.

Ancak bu yöntem formu

ShowDialog();

yöntemi ile açarsak çalışacaktır.

Show();

ile açarsak çalışmaz.

Örnekteki kodları açıklarsak; Personeli kaydettik ve kaydettiğimiz personelin kodunu ve adını liste formundaki textbox’lara yazdırdık. Liste yenileme işlemini de bir if ile kolaylıkla yapabilirsiniz. Eğer personel adı ve kodu boş değilse liste yenile gibi… 😉

 

3. YOL Class kullanarak formlar arası veri gönderme

Heh. Yine karşımıza çıktı bu class 🙂  Class’lar c# ta formlar arası veri aktarımı içinde kullanılabilir. Öncelikle bu yöntem için bir class tanımlıyoruz. Adına da GlobalClass diyelim. Sonraki işimiz bu class public yapıyoruz.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Uygulamam
{
class GlobalClass
{
}
}

İlk açtığımızda class dosyası yukarıdaki gibidir.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Uygulamam
{
public class GlobalClass
{
}
}

Yukarıdaki örnekteki gibi class’ı public yapıyoruz.

Şimdi burada da iki farklı kullanım şeklimiz var.

İlk yol değişkenleri public static olarak tanımlayarak;

 //class dosyası
public class GlobalClass
{
public static string KullaniciAdi = string.Empty;
public static int KullaniciKodu = 0;
}
//form1
private void Form1_Load(object sender, EventArgs e)
{
this.Text = GlobalClass.KullaniciAdi;
}

şeklinde kullanabiliriz.

Yada değişkenleri sadece public olarak tanımlayarak;

//class dosyası
public class GlobalClass
{
public string KullaniciAdi = string.Empty;
public int KullaniciKodu = 0;
}
//form1
GlobalClass glb = new GlobalClass();
private void Form1_Load(object sender, EventArgs e)
{
this.Text = glb.KullaniciAdi;
}

şeklinde kullanabiliriz. Burada kullanım şekli size kalmış ancak ben her zaman ilk kullanım şeklini kullanıyorum.  İkinci yöntemin farkı, class’ı forma çağırıyoruz. İlk yöntem ile ikinci yöntemi aynı anda kullanamazsınız. Değişkenler statik olmadan ilk kullanım şeklinde görünmez. Statik yaparsanız da ikinci kullanım şeklinde görünmezler.

 

C# Formlar Arası Veri Nasıl Gönderilir? yazımın sonuna geldik dostlar. Gördüğünüz gibi kullanabileceğiniz (benimde en az bir kere kullandığım) 4 adet c# formlar arası veri gönderme yöntemi bulunmaktadır. İşin aslı yapacağınız işe göre bu yöntemleri çoğaltabilirsiniz. Mesela bir ini dosyasını yaparak ve verileri ini dosyasına yazdıktan sonra diğer formlardan çekebilirsiniz. Dediğim gibi amaca göre yöntemler çeşitlendirilebilir.

C# hakkındaki diğer derslerim için tıklayabilirsiniz.

Sağlıcakla ve Takipte Kalın 😉

Liseden, Ağ Sistemleri ve Yönetimi bölümünden mezun oldum. Üniversiteden (2 yıllık), Bilgisayar Programcılığı bölümünden mezun oldum. Şuanda da AÖF, Yönetim Bilişim Sistemleri bölümünde okumaktayım.

Uzmanlık alanlarım; Windows Sistemleri, HTML, CSS, C# ve SQL’dir.

Hobi olarak uğraştığım genel konular, Photoshop, After Affects, Corel Draw’dır.Film, YABANCI dizi, Anime izlemeyi ve Manga okumayı severim. Arkadaşlarımla yürüyüş yapmayı ve grup olarak aktivitelere gitmeyi severim. Geri kalan zamanlarımın tümü bilgisayar karşısında geçer.