Avatar billede Slettet bruger
07. juli 2006 - 20:45 Der er 16 kommentarer og
1 løsning

Få control under curser

Jeg har lavet et spil hvor jeg skal have en masse billeder ind, og har lavet det med dynamiske pictureboxe, men jeg skal kunne få den picturebox der er under curseren så jeg kan ændre billedet, og en værdi. Eller er der en anden metode?
Avatar billede nielle Nybegynder
07. juli 2006 - 20:57 #1
Du kan jo lytte på deres MouseEnter event.
Avatar billede Slettet bruger
07. juli 2006 - 21:03 #2
ja altså kan godt lave en event for hver control jeg laver, der kører samme funktion, men så får jeg jo ikke atvide HVILKEN control det er?
Avatar billede mikkelbm Nybegynder
07. juli 2006 - 21:04 #3
Jo, det får du at vide via "sender":

public void MouseEvent (object sender, .....);
Avatar billede mikkelbm Nybegynder
07. juli 2006 - 21:04 #4
Eller du kan spørge den Control der er add'et til via en mouseevent (click, move, mouseup etc.):

void MouseEvent (object sender, MouseEventArgs args)
{
    Control control = backControl.GetChildAtPoint (args.Location);
    if (control is PictureBox)
    {
        PictureBox box = (PictureBox)control;
        // Udfør kode..
    }
}
Avatar billede nielle Nybegynder
07. juli 2006 - 21:06 #5
Korrekt. Iøvrigt behøver du ikke at lave en event pr. PictireBox - de akan alle brnytte den sammen funktion.
Avatar billede Slettet bruger
07. juli 2006 - 21:08 #6
Hvad er backControl??
Avatar billede nielle Nybegynder
07. juli 2006 - 21:08 #7
Du kan også hægte dig på MouseLeave hvis der skal ske noget specielt når du forlader en PictureBox igen.
Avatar billede Slettet bruger
07. juli 2006 - 21:08 #8
Har gjordt sådan:


PicBoxes[BoxesCount] = new PictureBox();
PicBoxes[BoxesCount].Top = ConTop;
PicBoxes[BoxesCount].Left = ConLeft;
PicBoxes[BoxesCount].Width = BoxSize;
PicBoxes[BoxesCount].Height = BoxSize;
PicBoxes[BoxesCount].Image = BlockedPlaceImg;
PicBoxes[BoxesCount].SizeMode = PictureBoxSizeMode.StretchImage;
PicBoxes[BoxesCount].MouseEnter += new EventHandler(EditorField_Enter);
Avatar billede Slettet bruger
07. juli 2006 - 21:09 #9
Det skal bare være hvilken en musen er over
Avatar billede nielle Nybegynder
07. juli 2006 - 21:10 #10
MouseEnter

        private void pictureBox_MouseEnter(object sender, EventArgs e)
        {
            PictureBox senderPB = sender as PictureBox;
            // Udfør kode...
        }
Avatar billede mikkelbm Nybegynder
07. juli 2006 - 21:10 #11
void EditorField (object sender, MouseEventArgs args)
{
  if (sender is PictureBox)
  {
      PictureBox box = (PictureBox)sender;
      // Vupti... Så har du den PictureBox som musen er over...
  }
}
Avatar billede mikkelbm Nybegynder
07. juli 2006 - 21:10 #12
:)
Avatar billede Slettet bruger
07. juli 2006 - 21:13 #13
Uh det virker sørme, tak tak :)
Avatar billede Slettet bruger
07. juli 2006 - 21:13 #14
Læg et svar
Avatar billede nielle Nybegynder
07. juli 2006 - 21:16 #15
Svar :^)
Avatar billede Slettet bruger
07. juli 2006 - 21:17 #16
og tak til dig også, Mikkel
Avatar billede nielle Nybegynder
07. juli 2006 - 21:20 #17
Vi kan da sagtens dele :^)

http://www.eksperten.dk/spm/719596
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester