Jump to content

Başka Class Kontrolü


Extended
 Share

Recommended Posts

Arkadaşlar okul için bir proje yapmaya çalışıyorum baya ilerledim fakat bir yerde takıldım. Main class'ımda ana ekranım var ve DataGridView im var. Bir butonla başka bir form açtırıyorum ve ordan kategori seçtiriyorum. Tamam a basınca database e bakıp o kategorideki verileri listelicem. Takıldığım nokta şu, başka class da olduğum için DataGridView imi göremiyorum ona nasıl erişim sağlayıp değişiklik yaptırabilirim?

Link to comment
Share on other sites

public yaparsan heryerden erişirsin

Properties > Modifiers > "Public"

 

Şu şekilde de çağırırsın:
 

Form2 frm2 = new Form2();

frm2.show();

this.hide();

frm2.datagridview1..........;

 

Edited by WolfmanTR_
Link to comment
Share on other sites

53 dakika önce, Extended yazdı:

Demin aklıma geldi

Main asda = new Main();
asda.ListePaneli.Rows.Add(0,"dsfsdf");

rastgele denedim ekleme yapmadı.

 

asda. yaptığında . ya basınca ListePaneli çıkıyor mu ? çıkmıyor ise tanıtamamışsındır.

Link to comment
Share on other sites

Application.OpenForms["Main"]; bu kısım için, Severity    Code    Description    Project    File    Line    Suppression State
Error    CS0266    Cannot implicitly convert type 'System.Windows.Forms.Form' to 'OnlineYukleyici.Main'. An explicit conversion exists (are you missing a cast?)  hatası veriyor.

Edited by Extended
Link to comment
Share on other sites

şu şekilde erişebilirsiniz:

            Form frm1 = Application.OpenForms["Form1"]; // form1 e eriş
            
            // form1'deki kontrollere eriş
            foreach (Control item in frm1.Controls) 
            {
                // eğer sıradaki kontrol datagridview ise
                if (item is DataGridView)
                {
                    // bir tablo oluştur
                    DataTable data = new DataTable();
                    data.Columns.Add("col1");
                    data.Columns.Add("col2");
                    data.Columns.Add("col3");

                    // tabloya veriler ekle
                    for (int i = 0; i < 100; i++)
                    {
                        Random rnd = new Random();
                        data.Rows.Add(i.ToString(), rnd.Next(123456, 987654), rnd.Next(123456, 987654));
                    }

                    // item'i datagridview'e çevir
                    DataGridView dgv = (DataGridView)item;
                    dgv.DataSource = data; // datasource ata
                }
            }
https://yadi.sk/d/S4ur2uW4ricg7

 

  • Like 2
Link to comment
Share on other sites

Bahsettiğiniz hata Application.OpenForms[index] Form türünde olduğu için hata veriyor, onu Main'e çeviremiyor, yukarıdaki verdiğim kodu

Form frm1 = Application.OpenForms["Form1"];

yerine

Form frm1 = Application.OpenForms["Main"];

yazarsanız projenizde kullanabilirsiniz.

  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...