Konuyu görüntüle
IUCODERS FORUM > Programlama > .NET > Yard?m : C#'ta iki form aras? veri aktar?m?
Yazar
omerozdemir


avatar
istanbul
Kayıt: 09.01.2006
11.05.2006-17:52 #6667
Form1'deki datagridde bulunan kayıtlardan birine çift tıkladığımızda açılan 2. formda(güncelleme formu) bu seçtiğimiz kayıt bilgilerini textbox,checkbox...'lar içine dolduracak(binding) ve o kayıt üzerinde değişiklik yapabileceğiz.. Güncelleme formundaki textleri doldurma işlemini en optimum nasıl yapabiliriz(public değişken kullanmadan meselasmug)?









www.mavimisket.org
Yazar
cantur


avatar
Rize
admin
Kayıt: 16.01.2006
11.05.2006-22:25 #6680
 
Güncelleme formundaki textleri doldurma işlemini en optimum nasıl yapabiliriz(public değişken kullanmadan meselasmug)?


Selam Ömer ,

Birincisi Formların her biri farklı classlar olduğundan içerisindeki değişkenleri public yapmaz isen diğer formdan erişemezsin. İllada değerleri public yapmıyacağım diyorsan Form2 de public bir fonksiyon yazarsın Form1 den de bu fonksiyona parametreleri beslersin.

1. yöntem benim genelde kullandığım (Doğru bir yöntemmidir bilemiyorum) Form2nin constructoruna Form1 i parametre olarak yollamak ve Form1 de Erişmek istediğim bütün değişkenlerimi public olarak yetkilendirmek.
ör:

Form2 Constructor.
private Form1 caller;   // Form2 içerisinde her noktada Form1'e ve doğal olarak onun alt             //elemanlarına erişebilmek için

public Form2(Form1 cagiran)
{
    caller = cagiran;
}

public void islemYapanBiFonksiyon()
{
   caller.datagrid1..... ; // gibi kullanabilirsin.
}


Form1 de yapacağın.
public DataGrid datagrid1;  // Bu nesne .Net tarafından private olarak otomatik oluşturulmuş oluyor bunu public yapacaksın.

private void form2ac(){
   Form2 frm = new Form2(this);
   frm.Show();
}


2. yöntem daha Güvenlikçi yaklaşırsak. Diyelim ki Form1 deki verilerin diğer formlar tarafından erişilmesi güvenlik sızıntısı yapabilir diye Form1 deki değişkenleri public yapmak istemeyebilirsin . Bu durumda Form2 de Form1 den istediğin parametreleri çekecek public bir fonksiyon yazıp bunu Form1 de çağırsan da iyi olur.biggrin

Form2 deki fonksiyon

public void Form1denVerilericek(DataGrid dtg1)
{
// işlemlerin.
}

Form1 de .

private void Form2ac()
{
Form2 frm = new Form2();
frm.Form1denVerilericek(DataGrid1);
}

Başka çetrefelli yöntemler de bulabilirsin. Ama bunlar istediğini karşılar sanırım.






Yazar
omerozdemir


avatar
istanbul
Kayıt: 09.01.2006
12.05.2006-01:07 #6693
Teşekkürler Özgürapplause...Çok makbule geçti..peace





www.mavimisket.org
Yazar
miracc


avatar
Houston, TX
Kayıt: 07.01.2006
13.05.2006-22:24 #6719
Benim de benzer bir sorunum var. ayri baslik acmayayim dedim.

Simdi soyleki: A.htm sayfamizin icinde bir tane IFRAME alani var ve burada B.htm sayfasi goruntuleniyo. Bu B.htm sayfasindaki bir linke tiklayinca yeni bir C.htm sayfasi external olarak aciliyor ve bu sayfada resimler listeleniyor.

Benim yapmak istedigim C.htm sayfasindaki resimlerden herbirine tikladigimizda tiklanan resmin adres bilgisi (images/abcdef.jpg) B.htm sayfasindaki textbox'a yazdirilsin.

Ben php ile kodluyorum o yuzden asp.net sorunumu cozmuyor. Javascript ile nasil yapabilirim bunu???






blog.miracc.com


Yazar
tarikkranda


avatar

Kayıt: 07.01.2006
13.05.2006-22:39 #6720
Mirac bahsettigin olayı, javascripttl yapmak icin pencere C.HTm de secme vs. islemini yaptıgında pencereyi kaparken mesela window.returnvalue diye bi sey var ona atama yapıosun, ve o return value yu B.HTM de yakalıosun. B.HTM deki link acılırken txtDeger.TExt = window.open("C.HTM") yazıosun ya burada C.HTM i kapayınca ve kapamadan icindeki window.returnvalue ya image in yolunu koyarsan yukarıda yazgıdım B.HTML in icinde txtDeger.TExt e o deger atanmıs olur. Su an OZgurdeyim kendi kodlarıma bakamıyorum ama OZgur sana bir ornek kod gonderir, kendi makinesinden, soylerim simdi. Gorusuruz..





Yazar
miracc


avatar
Houston, TX
Kayıt: 07.01.2006
13.05.2006-23:22 #6721
tarikkranda yazdi
 
Mirac bahsettigin olayı, javascripttl yapmak icin pencere C.HTm de secme vs. islemini yaptıgında pencereyi kaparken mesela window.returnvalue diye bi sey var ona atama yapıosun, ve o return value yu B.HTM de yakalıosun. B.HTM deki link acılırken txtDeger.TExt = window.open("C.HTM") yazıosun ya burada C.HTM i kapayınca ve kapamadan icindeki window.returnvalue ya image in yolunu koyarsan yukarıda yazgıdım B.HTML in icinde txtDeger.TExt e o deger atanmıs olur. Su an OZgurdeyim kendi kodlarıma bakamıyorum ama OZgur sana bir ornek kod gonderir, kendi makinesinden, soylerim simdi. Gorusuruz..


Saol abi. dedigini anladim ama javascript cok ii bilmedigim icin ornek kod olursa cok makbule gecer.
Ben ugrasayim biraz.

Tesekkurler.






blog.miracc.com


Yazar
orhan


avatar
istanbul
admin
Kayıt: 17.11.2005
13.05.2006-23:28 #6722
http://javascript.internet.com/forms/pass-textbox-frames.html





N/A
Yazar
cantur


avatar
Rize
admin
Kayıt: 16.01.2006
15.05.2006-01:36 #6744
Selam Mirac geçte olsa sana buradan hayırlı olsun diyeyim.

Sorduğun soruya gelince ben showmodaldialog denilen bir javascriptle pencereleri açıp seçilen parametreyi geri döndürüyordum. (Bu javascript fonksiyonu sadece internet explorerda çalışıyor ne yazıkki.) Kendini açan sayfadaki elemanlara veri yollayan değişik javascript yöntemleri varmış ama ben incelemedim.

Senin problemin anladığım kadarıyla frameler arası iletişim. Orhanın attığı link çözüm olur sanırım. Frameleri hiç kullanmadığımdan bir şey diyemiyorum.

Cevabı kendin bulduysan buraya yaz da biz de öğrenelim. Bulamazsan bi çözüm bulmaya çalışırızsmug





Yazar
miracc


avatar
Houston, TX
Kayıt: 07.01.2006
15.05.2006-02:07 #6747
cantur yazdi
 
Selam Mirac geçte olsa sana buradan hayırlı olsun diyeyim.

Sorduğun soruya gelince ben showmodaldialog denilen bir javascriptle pencereleri açıp seçilen parametreyi geri döndürüyordum. (Bu javascript fonksiyonu sadece internet explorerda çalışıyor ne yazıkki.) Kendini açan sayfadaki elemanlara veri yollayan değişik javascript yöntemleri varmış ama ben incelemedim.

Senin problemin anladığım kadarıyla frameler arası iletişim. Orhanın attığı link çözüm olur sanırım. Frameleri hiç kullanmadığımdan bir şey diyemiyorum.

Cevabı kendin bulduysan buraya yaz da biz de öğrenelim. Bulamazsan bi çözüm bulmaya çalışırızsmug


Tesekkur ederim Özgür.

Abi sorunu tam olarak cozemedim. Simdi benim sayfa yapisi biraz karmasik oldu. Acilan yeni pencereden alacagi degeri ana sayfamizdaki iframe in icindeki baska bi sayfaya gonderecek.
Ben de hic ugrasmadim. Soyle yaptim: External C.htm sayfasinda resimlere tiklayinca adres bilgisini ayni sayfadaki bir textbox a yaziyor. ben de ordan ctrl+c ile kopyalayip goturup iframe icindeki sayfadanin textarea alanina ctrl+v ile yapistiriyorum manuel olarak. biggrin

Orhan sen de sagol abi. Bu javascript.internet.com da baya guzel ornekler var. makbule gecti.





blog.miracc.com


Del.icio.us
Digg
Facebook
Furl
Google
Blink
Simpy
Spurl
Y! MyWeb