PDA

Tam Sürümünü Görmek İçin : Formlar Arası Bilgi Yollamayla İlgili


LoNeLY
18/06/2007, 13:04
Öncelikle Merhaba;

2 Adet Formum var. Açılışta 1. Form açılıyor ve butona basıldığında 2. formu acılyıor. 2. formda textbox a bilgi giriliyor. ve butona basıldıgı zaman bu bilgi açık olan 1. forma gitmeli ama bir türlü gitmiyor. Bunun tam tersini denedim. 1. formdan 2. forma bilgi göndermeyi o oluyor.. Dosya Ekte Yardımlarınızı bekliyorum..

Şu Formlar Arası bilgi gönderimini hiç adam akıllı beceremedim zaten:(


kiyas
18/06/2007, 15:28
sen yeni bir form1 nesnesi oluşturup onun textboxına yazıyorsun değeri...
form1de bir timer hazırla form2 diye bir nesne yaratılmışmı yaratılmışssa üzerindeki butona basılmışmı if içine koşul olarak yaz...
ben bunları değişkenlerle kontrol ettim form2deki butona basıldıgında form2 kapanır form2deki bilgi form1e gelir kolay gele...

timerin enable özelliğini true yapmayı unutma...

LoNeLY
18/06/2007, 17:28
dostum kusura bakma ama bir türlü beceremedim..

kiyas
18/06/2007, 18:15
bool yaratildi = false;
Form2 F2;
bunlari global tanımla sayfanın basinda...form1de
form2yi açtığın butonun clickinde yaratildi=true; yapacaksın


form1 e timer ekle ve bu kodları ekle...
private void timer1_Tick(object sender, EventArgs e)
{
if (yaratildi == true && F2.basildi==true)
textBox1.Text = F2.textBox1.Text;
}

form2de
public bool basildi = false; global bir bool tanımla butona bastıgın yerde
basildi=true; yap this.close(); ile form2 yi kapa timerin koşulu sağlanmış olacak
ve F2den almak istediğini almış olacaksın bunlarla uğraş yinede olmazsa kodu yollarım kolay gele...

LoNeLY
18/06/2007, 19:46
form1 den form2 ye gönderirken böyle birşeye ihtiyaç olmuyor ama? direk form2 nin değişkenini yaratıp değişken.textbox1.text= bilgi şeklinde gönderebiliyorum. ama bu dediğinizi yapamadım :(

kiyas
18/06/2007, 20:05
senin dediğin yöntemle ulaşamayacağımızı düşünuyorum çünkü form1i tetiklemek için bişi olmalı böyle bir yol varsa biri yazarsa birlikte öğrenmiş oluruz:)
senin koda ekleme yaparak şu şekilde yaptım kolay gele...

LoNeLY
18/06/2007, 20:41
tşkler acaba başka bir yöntemle nasıl yapabiliriz :D

LoNeLY
18/06/2007, 21:20
kiyas dostum f2.showdialog(); kısmını f2.show(); yaptıgımda yine bilgi göndermiyor..

kiyas
18/06/2007, 22:02
sebebini bende bilmiyorum this.close(); bu satırıda kaldırırsan o şekilde çalışıyor. veya basildi değişkenini kaldırırsan direk form2ye yazdığını form1'de almış oluyorsun.

puskin
21/06/2007, 08:47
Proğrama bakmadım ama şöyle yapılabilir.
Form2'nin constructor'una Form tipinde bir parametre ekle form2'yi çağırdığın yerde(yani Form1in içinde) şöyle çağır:

Form2 f2=new Form2(this);
f2.showdiyalog();

Böylece form2deyken form1 alanlarına erişebilirsin(tabi pablic olanlara).
edit:Form2'de
Form1 anaform;
diye bir field ekle constructor da ise parametereyle gelen referansı anaform değişkenine ata.