Merhaba,
eger bu kisa kodlardan yanlis bir sonuc cikarmadiysam Form1'deki secilen Item'i Form11'deki bir TextBox'a mi atamak istiyorsunuz ?
Eger durum bu ise acik formlari tespit edip ordan da buldugunuz formu cast etmenize gerek yok.
1 - Programladiginiz uygulamanizda eger nesne tabanli calisma yapmiyorsaniz en azindan formlarinizda property kullaninki direk textbox'lara ulasip bunlarla hata alma riskini de aza indirmis olursunuz. Asagidaki örnekte Form3'den bir elemanin Form1'deki bir textbox'a property vasitasiyla temsili atamasi vardir.
Form1 de önceden tanimladigimiz property :
public string SelectedItem { get; set; }
Daha sonra bu properyt'e istedigimiz yerden formu acmadan atama yapabiliriz.
Form1 frm1 = new Form1();
frm1.SelectedItem = textBox1.Text;
frm1.Show()
2 - Nesne tabanli calismanizi gerektiren bir durum varsa, örnek olarak formlariniz arasi iletisimlerin fazla oldugu ya da cok sayida verilerin formlar arasi kullanilmasi gerekiyorsa o zaman nesne basit Model tabanli calisin.
Projenizde bir klasör olusturup adini "Models" olarak verin. Ve stoklarinizla ilgili verilerinizi her seferinde sizin söylediginiz sekilde degilde, bu model araciligiyla verilerinizi iletisimde tutun. Hem derrli toplu olur, hemde form yapinizda kod sismesi olmaz, hem de projenizin sonradan update edilmesi, yönetilmesi kolay olur.
public class StokModel
{
private int id;
public int Id
{
get { return id; }
set { id = value; }
}
private int _stokKodu;
public int StokKodu
{
get { return _stokKodu; }
set { _stokKodu = value; }
}
}
Ardindan Form instans'larinizin normal yani default olan parametresiz constructorlarini ellemeden asagidaki kodu eklersiniz. Buda size formu ilk actiginizda yeni veriler girilecekse bos getirir default contructor ile, asagidaki secenekte size veritabanindan herhangi bir stok verileri getirdiginizde ikinci bir constructor secenegiyle direk parametre alip verileri göstermenizi saglar ilgili yerlere atamalari yaptiktan sonra. Tabii daha önceden StokKodu model sinifinizi veri tabanindan doldurmus olmaniz gerekiyor List<StokModel> ya da sadece bir StokModel sinifina.
public Form1(StokModel model)
{
InitializeComponent();
Application.Run(this);
txtStokKodu.Text = model.StokKodu;
.
.
}
Saygilarimla