none
Proměné ve funkci které chci využít v druhé

    Dotaz

  • Mam PictureBox event na mouse move a vté funkci 2 proměné ( Souřadnice cursoru X,Y) a potřeboval bych ty proměné ( souřadnice) využít v PictureBox Paint (vykreslování) eventu. Jenže si nevím rady jak udělat ty dvě proměné pro tu vykreslovací funkci "viditelnou" skoušel jsem fce změnit na public, poté jsem skoušel udělat event-handleer že pokaždé když přejedu myší po PictureBoxu spustila vykreslovací fce ale to opět neřešilo můj problém s dvěmi proměnými. Mam kod na způsob tohoto:

            public void pictureBox1_MouseMove(object sender, MouseEventArgs e)
            {
    
    
                int a = e.Location.X;
                int b = e.Location.X;
    
    
                //int a = 111;
                //int b = 111;
                this.Invalidate();
    
            }
    
            private void pictureBox1_Paint(object sender, PaintEventArgs e)
            {
                Graphics g = e.Graphics;
                g.DrawString("This a test", Font, Brushes.Black, new Point(a, b));
    
    
            }

    Prosím o radu a děkuji za budoucí rady.

     

    1. ledna 2012 15:23

Odpovědi

  • Ahoj,

    ak ti ide len o to ako zviditelnit lokálne premenné v jednej funkcií pre inú funkciu tak to nie je problém. Môžeš použiť globálne premenné (presnejšie povedané premenné deklarované nie vo funkcií ale v triede) ktoré sú videitelné zo všetkých funkcií (metód) tejto triedy.

    Premenné a, b deklaruj ako členské premenné triedy:

           int a = 0;

           int b = 0;

            public void pictureBox1_MouseMove(object sender, MouseEventArgs e)
            {


                a = e.Location.X;
                b = e.Location.X;


                //a = 111;
                //b = 112;
                this.Invalidate();

            }

            private void pictureBox1_Paint(object sender, PaintEventArgs e)
            {
                Graphics g = e.Graphics;
                g.DrawString("This a test", Font, Brushes.Black, new Point(a, b));

            }

    6. ledna 2012 16:21