[ danchi88 @ 07.02.2014. 19:48 ] @
Imam kratko pitanje, da li je neko od vas pravio aplikaciju gde na winformi ima labela sa mogucnoscu pomeranja pozicije?
Ako jeste, da li ste ikad labelu pomerali u deo forme gde morate skrolovati na desno recimo(kada je maximizovana forma, vi hocete da pomerite u neki deo koji trenutno nije vidljiv) ?
Ako jeste, da li ste snimali labeline pozicije u bazu podataka i kasnije iscitavali ih ?
Ako je i ovde vas odgovor da, da li vam se labela prilikom prikazivanje forme pojavila na istoj poziciji gde ste je snimili ?
[ AMD guy @ 08.02.2014. 14:24 ] @
Jel ti ovo domaci zadatak?
[ danchi88 @ 08.02.2014. 14:30 ] @
Nije, nego ja imam problem. Sve sam odradio, u bazu snima tacnu vrednost gde se nalazi ta labela, i kada je ocitava dobija nazad tacnu vrednost, ali jednostavno labela nije na istom mestu... A ako upisem rucno neku vrednost ona se tamo nadje.
[ AMD guy @ 08.02.2014. 14:37 ] @
Slobodno postavi ovde sta si uradio, oznaci gde imas gresku.
[ danchi88 @ 08.02.2014. 14:45 ] @
private void lb_MouseDown(object sender, MouseEventArgs e)
{
isDragging = true;
clickOffsetX = e.X;
clickOffsetY = e.Y;
}

private void lb_MouseMove(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
if (isDragging == true)
{
Label lb = (Label)sender;
lb.Left = e.X + lb.Left - clickOffsetX;
lbr.Top = e.Y + lb.Top - clickOffsetY;
}
}

}

private void lb_MouseUp(object sender, MouseEventArgs e)
{
lb.Location = new Point(lb.Location.X, (ro * itemHeight) + y);
strip.X = lb.Location.X;
stripsForUpdate.Add(strip);
}

private void frmTest_Load(object sender, EventArgs e)
{
for(int i=1;i<=strips.Count;i++)
{
lb.Location = new Point(strips[i-1].X,150);
this.Controls.Add(lb);
}

}
ja ovde x vucem iz baze i kao sto rekoh vrednost je ok, ona koja je snimljena i koja je loadovana. Ali labela nije na svom mestu. A ako rucno upisem neku vrednost od X, labela bude na toj poziciji :S.
[ Burgos @ 08.02.2014. 14:53 ] @
Code:
private void frmTest_Load(object sender, EventArgs e)
{
    for(int i=1;i<=strips.Count;i++)
   {
      lb.Location = new Point(strips[i-1].X,150);
      this.Controls.Add(lb);
    }
}


Ovde će labela lb ostati na poslednjoj poziciji. Ne mogu da vidim da li imaš više labela koje si već kreirao u dizajneru (lb1, lb2, itd.), ili bi trebalo da napraviš novu labelu u svakom prolazu:

Code:
private void frmTest_Load(object sender, EventArgs e)
{
    for(int i=1;i<=strips.Count;i++)
   {
      var lbl = new Label();
      lbl.Text = "Hello.";
      lbl.Location = new Point(strips[i-1].X,150);
      this.Controls.Add(lbl);
    }
}
[ danchi88 @ 08.02.2014. 15:12 ] @
U svakom prolazu pravim novu, jer ima vise. Ja se izvinjvam pravi kod ide ovako
Code:

private void frmTest_Load(object sender, EventArgs e)
{

    for(int i=1;i<=strips.Count;i++)
   {
      Label lbl = new Label();
      lb.Name = "Hello.";
      lb.Location = new Point(strips[i-1].X,150);
      this.Controls.Add(lb);

    }

}
 

Kako ja gledam na ovaj deo koda jeste, da svaka labela dobija svoju vrednost i postavlja se na formu po odredjenim koordinatama. Ali iz nekog razloga nece da postavi po X koordinati koja je u bazi.
[ ravni @ 10.02.2014. 08:19 ] @
Citat:
danchi88:A ako rucno upisem neku vrednost od X, labela bude na toj poziciji :S.
Ovo je moguce samo ako vrednost labeli rucno upisujes u nekom drugom momentu u odnosu na onaj kada to radis iz baze.
Mozda si zaboravio jos nesto da nam kazes: na primer da postoji neki kontejner koji sadrzi te labele, koji je npr anchorovan za neku stranu ili tako nesto.

Koje su vrednosti za strips[0] i label.Left pre i posle dodele kad stavis breakpoint?
[ danchi88 @ 29.03.2014. 09:15 ] @
Resio samo tako sto sam ukljucio vrednost skrolovanja.
Jer svaki put kada je skrolovano, program kao da resetuje vrednost pixela.