[ erinije @ 21.05.2018. 20:58 ] @
Počeo sam da učim c# sada imam problem.
Imam dva UserControl, uc1 i uc2, gde su smešteni u panel.
U uc2 je DataGridView dok u uc1 profil članova baze.
Hoću da uradim da kada kliknem na člana u uc2 pojavi se podaci u uc1. Kada je bilo u posebne forme, datagrid i profil, uradio sam i radilo je ali odusato sam od popup prozora i sada ne znam kada da prosledim podatke i textbox-ove uc1.
[ ravni @ 22.05.2018. 08:06 ] @
U uc2 napravis event koji se zove SelektovaniClanPromenjen koji ces okidati kada se promeni red u gridu. Napravis i property koji se zove SelektovaniClan i koji vraca Id odabranog clana.

U uc1 napravis metod koji se zove PrikaziClana() koji prihvata parametar Id i ucitava iz baze potrebno za prikazivanje.

Onda sve to povezes u formi gde su uc1 i uc2.

Ovako nekako

Code:

uc2.SelektovaniClanPromenjen += delegate 
{
uc1.PrikaziClana(uc2.SelektovaniClan);
};
[ erinije @ 22.05.2018. 11:57 ] @
Ja sam uradio ovako i ne radi
uc2
Code:

 uc1 psc = new uc1();
           // preuzimanje indexa izabranog reda 
            int index1 = e.RowIndex;
            DataGridViewRow selectRow = pregledbaze.Rows[index1];
          
            psc.Imebox = selectRow.Cells[1].Value.ToString();


uc1

Code:

public string Imebox { get { return imeBox.Text; } set {imeBox.Text = value; } }

Potreban mi je okidač, pretpostavljam, ali ne znam kako i gde ga staviti
[ Dusan Kondic @ 23.05.2018. 07:26 ] @
Greška je što kreiraš novu uc1 kontrolu pa vrednost dodeljuješ njenom svojstvu.
Treba da koristiš konkretnu uc1 kontrolu koja se nalazi u Form-u. Ne znam njeno ime.
[ ravni @ 23.05.2018. 08:26 ] @
Mozda da podelis sa nama kod, lakse cemo ti pomoci..
[ erinije @ 23.05.2018. 18:41 ] @
Pa napisao sam
prvi kod je u uc2
private void Pregledbaze_CellContentClick(object sender, DataGridViewCellEventArgs e)

a drugi u uc2

u form1, meni, je

Code:

 private void Klijent_Click(object sender, EventArgs e)
        {
            glavniPanel.Controls.Clear();
            
            uc1 p = new uc1();            
            p.Dock = DockStyle.Top;            
            glavniPanel.Controls.Add(p);
            
            uc2 pr = new uc2();
            pr.Dock = DockStyle.Bottom;
            glavniPanel.Controls.Add(pr);            
        }


[ erinije @ 26.05.2018. 20:59 ] @
Rešeno
Možda će nekome pomoći

uc2
Code:

public delegate void pacprikaz(int pok);

public static event pacprikaz Pri;
        
        private void Pregledbaze_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            if (Pri != null)
            {
                _index = e.RowIndex;
                Pri(_index);
            }
       }

uc1
Code:

uc2.Pri += new pacprikaz(clan);

private void clan(int p)
        {
            uc2 sp = new uc2();
            imeBox.Text = sp.Pre.Rows[p].Cells[1].Value.ToString();
           
....
        } 

Nisam koristio pretraživanje baze po ID-u jer mislio sam,ovako ide brže.
Svaka sugestija je dobrodošla