przesuwanie okna

0

Witam
Mam pytanie. Ukryłem pasek tytułu (własciwość FormBorderStyle = none) i chce teraz aby formę można było przewsuwać klkiając w dowolnym miejscu formy. Jak to zrobić?
Z góry dziękuję.

0

Zdarzenie onMouseDown ustawia jakas flage, w zdarzeniu onMouseMove przesuwasz formatke, jesli flaga ustawiona, onMouseUp sciagasz flage.

0

mógłbyś dokłdniej napisać co mam w onMouseMove wpisać?

0

W onMouseDown zapamietujesz wspolrzedne klikniecia mysz, powiedzmy w skladowych x i y. W onMouseDown robisz:


if(!mouseDown)//wlasna flaga klikniecia
return;
Form formatka = ((Form)sender);
formatka.SetDesktopLocation(formatka.DesktopLocation.X - (x - e.X), formatka.DesktopLocation.Y - (y - e.Y));



i powinno hulac.
0

nie hula...
ktoś ma inny pomysł?

0

Pokaz kod - nie hula, troche malo mowi :P Mi dziala, obstaje przy swoim ;)

0
int x, y;
            x = MousePosition.X;
            y = MousePosition.Y;
           if (!mouseDown)
                return;
            Form formatka = ((Form)sender);
            formatka.SetDesktopLocation(formatka.DesktopLocation.X - (x - e.X), formatka.DesktopLocation.Y - (y - e.Y));

Mam probleem z tą flagą klknięcia jak to zrobić?

0

Ekhem... chyba nie przeczytales tego, co napisalem :/ pozycje myszy w trakcie klikniecia zapamietujesz w zdarzeniu onMouseDown, to raz. Po drugie mozesz je zrobic jako skladowe. Tak samo z flaga. To co napisales powyzej nie ma prawa dzialac (chocby dlatego, ze przeciez wspolrzednie w zdarzeniu i wspolrzedne myszki to dokladnie to samo :P). Swoja droga machnalem sie powyzej - ten kod co dalem dotyczy onMouseMove ;)

0

ale co z tą flagą mousedown help plz :)

0

poradziłem już sobie prawie. ale przy klknięciu przewsuwa mi się okno do górnego lewego rogu ekranu i wtedy jak trzymam wcisniety przycisk i przesuwam myszką to wszystko działa OK. tylko dlaczeog sie przesuwa przy klknieciu ;/

        private void Form1_MouseDown(object sender, MouseEventArgs e)
        {
            int x, y;
            aa = 2;
            x = MousePosition.X;
            y = MousePosition.Y;
            label6.Text = x.ToString();
            label7.Text = y.ToString();            
        }

        private void Form1_MouseUp(object sender, MouseEventArgs e)
        {
            aa = 1;
        }
   private void Form1_MouseMove(object sender, MouseEventArgs e)
        {
            if (aa != 2)//wlasna flaga klikniecia
               return;
            Form formatka = ((Form)sender);
            formatka.SetDesktopLocation(formatka.DesktopLocation.X - (Convert.ToInt32(label6.Text) - e.X), formatka.DesktopLocation.Y - (Convert.ToInt32(label7.Text) - e.Y));

        }

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