• 16-03-2015, 14:56:32
    #1
    Merhaba,

    formumda 2tane gridim var.
    1.sinin adı: Gridview1
    2.sinin adı: Gridview2

    Bazı ayarlar yapıp kaydet butonuna bastığımda hangi gridim aktifse onunla ilgili işlem yapmak istiyorum fakat yapamadım.

    Aşağıdaki gibi bir kod buldum. Kullanıcının yaptığı değişiklikleri text olarak kaydediyor. Bu veriyi alıp veritabanına yazdıracağım daha sonra tekrar gridi açtığında veritabanından bu bilgilere göre gridi açtıracağım buraya kadar bir sorun yok.

    Fakat 50tane grid olunca projemde tek bir ortak fonksiyon/dll vb. birşey yapmak istiyorum. Projemde hangi gridde aktifse ve yukarıda benim için bu gridi kaydet derse o gridi kaydetmesini istiyorum.

    ' SAVE
    Dim str As Stream = New System.IO.MemoryStream()
    gridView1.SaveLayoutToStream(str)
    str.Seek(0, System.IO.SeekOrigin.Begin)
    Dim reader As New StreamReader(str)
    Dim text As String = reader.ReadToEnd()
    ' SAVE the "text" variable to the database
    '...
    Bu kodda bulundan gridView1 kısmını değişken yapamıyorum.


    Başka önerileriniz varsa onlarıda uygulayabilirim.

    Birsürü form, grid vb. bir projeniz olduğunu düşünün.
    MDI form ile üstmenülere basılınca aşağıda formlar ve gridler geliyor.
    Üst menüde ortak bir buton koyacağım. Bu buton "benim için grid ayarlarını kaydet" olacak.
    Kullanıcı hangi formu hangi gridi görüntülerse görüntülesin kaydete basınca o gridin ayarlarını kaydedecek.

    Aynı sorunum excele aktar da da var. Fakat üstteki durumu halledebilirsem aynısını diger aksiyonlarada uygulayacağım. Her formumdaki gridimin yanında excele aktar butonu var bunu tek bir buton yapıp hangi grid aktifse onu excele aktarma gibi birşey.
  • 16-03-2015, 20:49:54
    #2
    Sorun biraz karışık olmuş,

    Ama anladığım kadarıyla şöyle bir şey yapabilirsin..

    aktifliği belirtmek için bir fonksiyon yaz mesela

    void AktifiKaydet(DataGridView view)
    {
    ... kaydetme kodların..
    }


    mesela aktif olduğunu belirtmek için de AktifKaydet( ..... ); bu nokta yerine de hangi gridin aktif olacaksa onu ver

    Ama eğer bunlar farklı formlardaki grid ise
    o zaman bir tane statik public datagridview tanımla ve aktifi ona eşitle.

    AnaForm.BenimDataGrid = datagridview1;

    gibi
    sonra o ortak butona AnaForm.BenimDataGrid i alarak kayıt yaptırabilirsin.

    onu da şöyle tanımlayacaksın, anaform içerisinde

    public static DataGridView BenimDataGrid;

    şeklinde
  • 16-03-2015, 23:26:13
    #3
    farklı formlarda dediğini uyguladım oldu teşekkürler