folder Tahribat.com Forumları
linefolder C#, Asp.Net, .Net Core
linefolder C# Ta Formlar Arası Veri Aktarımı (Yardım)



C# Ta Formlar Arası Veri Aktarımı (Yardım)

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    SharpShooter
    SharpShooter's avatar
    Banlanmış Üye
    Kayıt Tarihi: 10/Temmuz/2008
    Erkek

    GrN bunu yazdı:
    -----------------------------

    SharpShooter bunu yazdı:
    -----------------------------

    static değişken tanımlamak, kod yazarken yapılacak en son şeylerden biridir.

    neden derseniz ?

    static veriler ram'de tutulur. Şöyle ki bir web uygulamanız var. Static olarak etiketlenmiş bir değişkenininz;

    static int urunNo = 0;

    1 kullanıcı geldi; bir ürüne tıkladı sizde kod tarafında,static olarak işaretlenmiş urunNo değişkenine 5 atadınız diyelim. Ardından başka bir müşteri geldi o da bi ürüne tıkladı çat, urunNo 8 oldu. şimdi 5 nolu ürüne tıklayan adam alışveriş yap diyince , sizin programınız urunNo değişkenine bakarsa, orada 5 değil 8 görücek ve 8 nolu ürünü alacak.

    Windows tarafında pek bir sıkıntı oluşturacağını sanmıyorum, eğer ana server üzerinden bir kontrol yoksa

    static değişken falan görünce aklıma geldi , küçük bi bilgi olsun dedim :)


    -----------------------------

    static yerel degiskenler, global degiskenler ve karakter katarlari exe kodun data bolum'unde tutulurlar. yerel degiskenler ise fonksiyona girilince olusturulur ve fonksiyondan cikildiginda yok edililirler. yerel degiskenlerin olusturuldugu bolge ise exe kodun stack kismidir. exe kod genelde uc kisma ayrilir. code, data, stack...

    microsoftun vc++ derleyicisi bi kac bolum daha olusturur. code, bss, stack, data...

    bu kisa bilgiden sonra bi kod blogu[fonksiyon] icerisinde static bir degisken yarattigimizda, aslinda global bir degisken yaratiriz ama global isim alanini kirletmeyiz. mantiksal olarak iliskisi o fonksiyondandir. siniflarin uye elemanlari olarak static degiskenler yarattigimizda da ayni sey gecerlidir. bu yuzden sinif ismiyle ( nesne olusturmadan ), sinifin uye elemanina ulasabilmek icin o elemanin static olarak tanimlanmasi gerekiyor. Bellekte hazir bi durumda olucak ki, biz ona ulasabilelim.

    neden bunlari anlattim biliyomusun. cunku static degiskenler kullanilabilinir bisey :)


    -----------------------------

    kullanılamaz dediğimi hatırlamıyorum, öyle bir şey de dememişim zaten :)

    ben web uygulamalarını kasteddiğimide anlamayacak kadar bilgi birikimin olmadığını farketmemişim, belirtmeliymişim demek ki :)


    - xx yerde hata var. - ya aslında kod şöyle sanıyor olabilir bla bla bla - olm kendine gel kodlar düşünmez - ...
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Musket
    Musket's avatar
    Üstün Hizmet Madalyası
    Kayıt Tarihi: 09/Haziran/2002
    Erkek

    ntxsoft bunu yazdı:
    -----------------------------

    ben genelde static kullanıyorum, ama arkadaşlarınn dediği gibi dikkatli kullanmalısıınız. karışıklık olabilir.

     

    public Form1(string x, inty)

     

    diye  tanımlarsanız, bu şekilde de parametre yollayabilirsiniz.

    Form1 myform = new Form ("test",1);

    ve son olarak formu göstermek için

    myform.Show();

    yapmalısınız.


    -----------------------------

    Doğru çözüm budur.

    Bende bunu yazacaktım ancak ki geç kalmışım sanırım :)

  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    guru
    guru's avatar
    Kayıt Tarihi: 30/Mart/2007
    Erkek

    SharpShooter bunu yazdı:
    -----------------------------

    GrN bunu yazdı:
    -----------------------------

    SharpShooter bunu yazdı:
    -----------------------------

    static değişken tanımlamak, kod yazarken yapılacak en son şeylerden biridir.

    neden derseniz ?

    static veriler ram'de tutulur. Şöyle ki bir web uygulamanız var. Static olarak etiketlenmiş bir değişkenininz;

    static int urunNo = 0;

    1 kullanıcı geldi; bir ürüne tıkladı sizde kod tarafında,static olarak işaretlenmiş urunNo değişkenine 5 atadınız diyelim. Ardından başka bir müşteri geldi o da bi ürüne tıkladı çat, urunNo 8 oldu. şimdi 5 nolu ürüne tıklayan adam alışveriş yap diyince , sizin programınız urunNo değişkenine bakarsa, orada 5 değil 8 görücek ve 8 nolu ürünü alacak.

    Windows tarafında pek bir sıkıntı oluşturacağını sanmıyorum, eğer ana server üzerinden bir kontrol yoksa

    static değişken falan görünce aklıma geldi , küçük bi bilgi olsun dedim :)


    -----------------------------

    static yerel degiskenler, global degiskenler ve karakter katarlari exe kodun data bolum'unde tutulurlar. yerel degiskenler ise fonksiyona girilince olusturulur ve fonksiyondan cikildiginda yok edililirler. yerel degiskenlerin olusturuldugu bolge ise exe kodun stack kismidir. exe kod genelde uc kisma ayrilir. code, data, stack...

    microsoftun vc++ derleyicisi bi kac bolum daha olusturur. code, bss, stack, data...

    bu kisa bilgiden sonra bi kod blogu[fonksiyon] icerisinde static bir degisken yarattigimizda, aslinda global bir degisken yaratiriz ama global isim alanini kirletmeyiz. mantiksal olarak iliskisi o fonksiyondandir. siniflarin uye elemanlari olarak static degiskenler yarattigimizda da ayni sey gecerlidir. bu yuzden sinif ismiyle ( nesne olusturmadan ), sinifin uye elemanina ulasabilmek icin o elemanin static olarak tanimlanmasi gerekiyor. Bellekte hazir bi durumda olucak ki, biz ona ulasabilelim.

    neden bunlari anlattim biliyomusun. cunku static degiskenler kullanilabilinir bisey :)


    -----------------------------

    kullanılamaz dediğimi hatırlamıyorum, öyle bir şey de dememişim zaten :)

    ben web uygulamalarını kasteddiğimide anlamayacak kadar bilgi birikimin olmadığını farketmemişim, belirtmeliymişim demek ki :)


    -----------------------------

    sen, galiba beni yanlis anladin. amacim biseyler paylasmakti :)

    web uygulamalarida olsa [ki ben, web uygulamalari ile ilgilenmem] 'kod yazarken en son kullanilicak...' diye yaklasinca olaya, bende static degiskenlerin nasil ve nerede olustugunu anlattim. ;)


    ..
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    CmdExE
    CmdExE's avatar
    Kayıt Tarihi: 03/Aralık/2009
    Erkek

    Form1 den yazılan yazıyı Form 2 de göstermek için

    Form2 frm2 = null;

    void Form1_Load()

    {

    frm2 = new form2();

    frm2.show();

    }

    void Button1_Click()

    {

    frm2.Controls["TextBox1"].Text = TextBoxt1.Text;

    }

     

    //Tam tersi için ana form Form1 dersek

    form1_Load()

    {

    Form2 frm2 = new Form(this);

    frm2.show();

    }

    // Form2 de main metod da şunu yazıoruz

    Form1 frm1 = null;

    public Form2(Form1 frm)

    {

    frm1 = frm;

    InitializeComponents();

    }

    void Form2nin_Button1_Click()

    {

    textbox1.text = frm1.Controls["Textox1"].Text;

    }

    Forumda kod yazmak nekadar zormuş :)

  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Comedian
    Comedian's avatar
    Kayıt Tarihi: 15/Aralık/2009
    Erkek

    "CmdExE" in yazdıkları işine yaramıştır zaten ama bende  benzer bi yöntem önerebilirim

    Form1 ve Form2 olsn

    Form2 için :

    Publik Form1 frm;

     

    Form1 için :

    buton event'i içine:

    Form2 frm2 = new Form2();

    frm2.frm=This;

    frm2.show();

     

    Form2 bu şekilde açıldıktan sonra Form1 üzerinde hangi öge istersen eğer 'Modifiers' propertisi 'Private' değilse direk karşına çıkacaktır ve sanki kendi formundaymış gibi yönetebilirsin.

    yani örneğin sonradan açılan Form2 için :

    herhangi bi event içinde :

    frm.TextBox1.visible=false;

    dediğimiz zaman Form1 üzerinde direk çalışmış olur.

    bundaki mantık zaten ram üzerindeki stack alanda oluşturulmuş olan Form1'i bir paylaşımlı değişkene atadıktan sonra bu değişkenin değerini vererek ram'de bulunan Form1'e ulaşmış olursun ve istediğin gibi kullanabilirsin.

    Aynı mantık tam tersi içinde geçerlidir.Ama daha kolay bi nokta ikinci form açılırken gerekli parametreler gönderilebilr böylece o parametrelerle beraber açılacaktır.

Toplam Hit: 9430 Toplam Mesaj: 16