uciekający button

0

Witam ,
zaczynam uczyć się programowania w c#. Mam do zrobienia uciekającego buttona i mam dwa pytanka:

  1. jak mogłabym zablokować okienko, aby button nie uciekał mi poza okno?
  2. jak zrobić by lokalizacja była losowa w tym okienku? (teraz ucieka mi tylko po skosie :D )

byłabym wdzięczna za wszelkie podpowiedzi

1
  1. Można się obyć bez tego.
  2. Losujesz liczbę/liczby z określonego przedziału i w pętli przesuwasz button, dopóki jego x,y nie jest równe wylosowanym liczbom.
1

Napisz z jakiej technologii korzystasz (WinForms, WPF).

0

jak to napisać??? te losowe liczby? żeby te współrzędne były losowe?

   private void guzik_MouseEnter(object sender, EventArgs e)
        {
            Random random = new Random();
            guzik.Location = new Point(x, y);
            x = random.Next(550, 350);
            y = random.Next(550, 350);
            foreach (int x in Point)
            {
                guzik.Location = new Point(x);
            }
        } 
1
  1. new Random() powinno być przeniesione do zdarzenia Load formy, a sama zmienna Random random polem klasy formy.
  2. zamiast stałych liczb pobieraj Width i Height formy i odejmij od nich Width i Height przycisku - w ten sposób przycisk nie wyjedzie po za formę.
0

dlaczego mi w ogóle button ucieka? : D

 
   private void guzik_MouseEnter(object sender, EventArgs e)
        {
            guzik.Location = new Point(x, y);
            x = 560 - guzik.Width;
            y = 360 - guzik.Height;
            
        }
0

dlaczego ucieka mi tylko na górnej części forma?

 private void guzik_MouseEnter(object sender, EventArgs e)
        {
            guzik.Location = new Point(x, y);
            x = random.Next(350, 550);
            y = random.Next(350, 550);
            if (x > 550  ) 
            {
                x = 10;
            }
            if (y >350  )
            {
                y = 10;
            }
        } 
1

Chyba nie tylko na górnej części forma ale powinno być: "na prawej-górnej" ? :)

2

Możesz to zrobić też tak:

 private void button_MouseMove(object sender, MouseEventArgs e)
        {
            Random rnd = new Random();

            this.button.Location = new Point(rnd.Next(1, (this.Width - this.button.Size.Width - 10)), rnd.Next(1, (this.Height - this.button.Size.Height - 45)));
        }

1 użytkowników online, w tym zalogowanych: 0, gości: 1