Şuan bir deneme yapmaya çalışıyorum ama beceremedim.MDIFormum var ve bunun içinde açtığım bir parent formum var. Parent formun içindeki bir buton vasutası ile kullanıcıya veri girmesi için showdialog açıyorum.Burdaki textbox a veri girmesini ve kaydet butonuna bastığında parent formdaki bir labelda textboxa girilen değerin gösterilmesini istiyorum. Bulduğum örneklerde benzer çalışmalar yapılmış ama açık olan formdan sonra açılan forma veri girildiğinde mevcuttaki açık olan forma veri gönderemiyorum. Biraz karışık oldu sanırım ama cevaplarsanız sevinirim.
Arkadas cevap vermis ama bir yontemde; Public fonksiyondur. Bu sekilde textboxina disaridan ulasilamaz ama texti degistirilebilir.
Form2'nim kod bloguna; public void VeriGonder(string yazi) { textBox2.Text = yazi; } Bunu yaptiktan sonra form1de Form2 form2 = new Form2(); form2.ShowDialog(); form2.VeriGonder(textBox1.Text);
Arkadaşlar cevaplarını için teşekkür ederim.Fakat ben bu iki yöntemi de denemiştim olmadı. Sizde burda form2.showDilog(); diyerek formu açıyorsunuz. ama benim formum zaten açık. Demek istediğim Default olarak açılan formumdaki bir buton ile yeni form açıyorum.Yeni açılan formdan girdiğim bir değeri ilk açılan formda göstermeye çalışıyorum. Tekrar showdialog dersem zaten açık olan form ikinci kez açılıyor.
Çözümü bugünkü aramalarım sonucu buldum.O da delegate yöntemiymiş.
Neden bu kadar sabit goruslusunuz bilmiyorum bak yukarida arkadasin yazdigi kodu kopyala eger acik bir formu yonetmek istiyorsan Form2 form = new Form2(); ve showdialog satirina ihtiyacin yok. Formuda showdialog la acma showla ac. Cunku showdialogun altina yazdigin kodlar diger form kapandiktan sonra gerceklesir. Delegatein de aslinda burdaki cozum yolunu goremedim. Delegate dedigin olay herhangi bir durum karsisinda onceden tanimlanan bir metoda gerekli paramterelerin gonderilmesi ve o metodun cagirilmasi islemidir. Ornegin sen buttonun click olayina gittiginde sana bir metod veriyor. Ama sen bunu cagirildiini hic bir yerde gormuyorsun. Cunku bunun cagirilma islemi daha onceden tanimlanan Button sinifindan (muhtemelen bundan emin degilim ama genel mantik budur) yapiliyor. Delegate yontemiyle cozduun yol da su sekilde olabilir; İkinci forma birinci formdaki buttonun tiklanipmasiyla ilgili bir islen verirsen form2 acikken form1 den butona basildiginda senin istedigin islemler yapilir. Ama sen yine de buldugun yolu buraya yaz da biz de bilgilenelim
Dedigin olayda su sekilde yapilir acik formdan ana forma; bu sefer form1 (ana form) da bir metod ac public olsun. Patametre olarak string bir veri iste. Daha sonra icinde artik textbox textini mi degistirirsin ne istersen onu yap. Bu metod tanimlama islemi bittikten sonra child formunda ( form2 sanirim) .MdiParent ozelligini kullanarak mesela; this.MdiParent.VeriGonder("asdfghjkl"); yazdiginda ana formuna bu veri gider. Bu dediklerimi yapabilmen icin ana forma child olarak form2 yi ve form2 yede parent olarak form1 i vermis olman lazim
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms;
namespace Form2 { public partial class Form1 : Form {
private void button1_Click(object sender, EventArgs e) { Form2 form2 = new Form2(); form2.olayimBenim += new Form2.delegemBenim(form2_olayimBenim);
form2.ShowDialog(); } } }
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms;
namespace Form2 { public partial class Form2 : Form { public Form2() { InitializeComponent(); }
public delegate void delegemBenim(TextBox txtBox);
Şuan bir deneme yapmaya çalışıyorum ama beceremedim.MDIFormum var ve bunun içinde açtığım bir parent formum var.
Parent formun içindeki bir buton vasutası ile kullanıcıya veri girmesi için showdialog açıyorum.Burdaki textbox a veri girmesini ve kaydet butonuna bastığında parent formdaki bir labelda textboxa girilen değerin gösterilmesini istiyorum.
Bulduğum örneklerde benzer çalışmalar yapılmış ama açık olan formdan sonra açılan forma veri girildiğinde mevcuttaki açık olan forma veri gönderemiyorum.
Biraz karışık oldu sanırım ama cevaplarsanız sevinirim.