• 26-05-2020, 23:15:11
    #1
    Form1 de bulunan datagridview tablosundaki bir satırın id değerini elimde tutup bunu Form2 de kullanmak istiyorum nasıl yapabilirim ?

    yapmak istediğim;

    form1 deki datagridview tablosuna sql den kitap listesi çektiriyorum (id-yazar-kitapadı-sayfasayısı-puan) hemen altında puan ver diye bir buton var butona basıldığında Form2 açılıyor ve 1-5 arası puanlar var. Puana tıklanıldığında Form1 de seçili olan kitabın puan değerinin değişmesi lazım
  • 26-05-2020, 23:20:33
    #2
    1. Public bir sınıf oluşturup içerisinde public bir değişken oluşturup değeri bu değişkene aktarabilir ve istediğiniz formdan bu değere ulaşabilirsiniz.
    2. Yada form içerisinde public erişim belirtecine sahip bir field oluşturun, ardından ulaşmak istediğiniz formdan var form = Application.OpenForms["formAdi"]; var degisken = form.DegiskenIsmi;
    şeklinde bir kod ile değere ulaşabilirsiniz.
  • 26-05-2020, 23:20:34
    #3
    Öncelikle DataGridView componentinden almak istediğiniz veriyi alıp oluşturduğunuz bir değişkene set ediyorsunuz.Daha sonra Form2 içerisindeki constructor metoda gönderebilir Form2 içerisinde işleyebilirsiniz veya Form2 içerisinde bir değişken oluşturursunuz. Form1 üzerinden
    Form2 frm2= new Form2();
    frm2.degisken=id;
    yapabilirsiniz.
    İlk yok ise
    Form2 frm2= new Form2(id);
    şeklinde gönderirsiniz yalnız bunu yapabilmeniz için Form2 sınıfında bir yapıcı metodunuz olması gerekir.
    public Form2(int id ){
    //etc
    }
  • 26-05-2020, 23:22:45
    #4
    en basit yaklaşımı ile bir classa public değişken yazarsın globalde bütün formlarda kullanabilirsin.
    ikinci bir yöntem ise
    private void button1_Click(object sender, EventArgs e){        Form2 frm2 = new Form2(textBox1.Text);        frm2.Show();    } public Form2(string*r10)    {        InitializeComponent();        textBox1.Text =*r10;    }
    gibi yapabilirsin

    kusura bakma kod yanyana oldu ama nasıl oldu forumda cevap yazarken anlamadım.
  • 26-05-2020, 23:25:21
    #5
    Bir butona event ekleyerek böyle taşıyabilirsin. Event yerine tüm işlemleri bir metod aracılığı ile de yapabilirsin. Kısaca mantık bu şekilde.

    // DataGridView Id değerini değişkene atama
    Int tasinacakDeger= Convert.ToInt32(dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells[0].Value);
    
    // Event aracılığıyla yeni formu açma ve değer gönderme
    private void button1_Click(object sender, EventArgs e)
    {
    Form2 frm2 = new Form2(tasinacakDeger);
    frm2.Show();
    }
    
    // Yeni forma değeri alma
    public Form2(int tasinacakDeger)
    {
    InitializeComponent();
    int tasinanDeger = tasinacakDeger;
    }
  • 26-05-2020, 23:36:50
    #6
    maliyassi adlı üyeden alıntı: mesajı görüntüle
    Bir butona event ekleyerek böyle taşıyabilirsin. Event yerine tüm işlemleri bir metod aracılığı ile de yapabilirsin. Kısaca mantık bu şekilde.

    // DataGridView Id değerini değişkene atama
    Int tasinacakDeger= Convert.ToInt32(dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells[0].Value);
    
    // Event aracılığıyla yeni formu açma ve değer gönderme
    private void button1_Click(object sender, EventArgs e)
    {
    Form2 frm2 = new Form2(tasinacakDeger);
    frm2.Show();
    }
    
    // Yeni forma değeri alma
    public Form2(int tasinacakDeger)
    {
    InitializeComponent();
    int tasinanDeger = tasinacakDeger;
    }
    hocam
    int tasinacakDeger = Convert.ToInt32(dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells[0].Value);
    bu kodu form un load ına ekliyorum fakat daha sonra button1_click eventinde çağıramıyorum başka biryere mi eklemem gerekiyor ?
  • 26-05-2020, 23:40:51
    #7
    Huskar adlı üyeden alıntı: mesajı görüntüle
    hocam
    int tasinacakDeger = Convert.ToInt32(dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells[0].Value);
    bu kodu form un load ına ekliyorum fakat daha sonra button1_click eventinde çağıramıyorum başka biryere mi eklemem gerekiyor ?
    Değişkeni load eventinin dışında tanımlamalısınız.
  • 26-05-2020, 23:52:40
    #8
    ibrahimcakal adlı üyeden alıntı: mesajı görüntüle
    Değişkeni load eventinin dışında tanımlamalısınız.
    tamam hocam o kısmı hallettim fakat şöyle bir uyarı geldi



    edit//

    benim hatammış kodu 2ayrı yere yapıştırmışım teşekkürler hocam çok sağolun