Avatar billede spooolll Nybegynder
27. juli 2003 - 22:30 Der er 7 kommentarer og
1 løsning

Flytbar form med FormBorderSyle = None

Hvordan gør jeg min form/program flytbar i C# og stadig have FormBorderSyle = None?
Avatar billede spooolll Nybegynder
28. juli 2003 - 09:38 #1
Jeg skal bare kunne flytte den selvom der ikke er en "titel-linie"
Avatar billede Lasse Novice
30. juli 2003 - 18:37 #2
Et eller andet sted i din initialisering:
this.MouseDown += new MouseEventHandler(this.Caption_MouseDown);


//API constants
public const int WM_NCLBUTTONDOWN = 0xA1;
public const int HTCAPTION = 0x2;
//API functions to move the form
[System.Runtime.InteropServices.DllImport("user32.dll")]
public static extern bool ReleaseCapture();

[System.Runtime.InteropServices.DllImport("user32.dll")]
public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);

public void Caption_MouseDown(object sender, MouseEventArgs e)
{
    //If the left mouse is pressed in top 30 pixels , release form for movement
    if (e.Button == MouseButtons.Left && e.Y < 30)
    {
        // Release form, so it can be moved
        ReleaseCapture();
        SendMessage(Handle, WM_NCLBUTTONDOWN, HTCAPTION, 0);
    }
}

Saa "let" er det saamaend... Du kan selvfoelgelig altid aendre filtret(e.Button == MouseButtons.Left && e.Y < 30) fra hvor det er muligt at igangsaette flytningen
Avatar billede Lasse Novice
30. juli 2003 - 18:38 #3
ja, det var saa et svar ;-)
Avatar billede spooolll Nybegynder
05. august 2003 - 18:09 #4
Ja jeg har jo accepteret dig, men det duer åbenbart ikk alligevel :(
Jeg får følgende fejlmelding:

error CS1002: ; expected

og hvis jeg sætter ; ind får jeg:

Form1_Load(object, System.EventArgs)' must declare a body because it is not marked abstract or extern

Håber i vil hjælpe :)
Avatar billede Lasse Novice
06. august 2003 - 22:31 #5
Proev at lave et nyt projekt. Jeg tror det har loekkedes dig at oedelaegge dig gamle og jeg kan umiddelbart med det du skriver ikke lige se hvad fejlen er.
Avatar billede spooolll Nybegynder
08. august 2003 - 13:37 #6
Har lavet et nyt projekt og bygget den med success, men jeg kan ikke flytte den... :(
Avatar billede Lasse Novice
08. august 2003 - 16:41 #7
har du husket

this.MouseDown += new MouseEventHandler(this.Caption_MouseDown);

i din initialisering.

Hvis du vaelger Form propertien FormBorderStyle = None, saa skulle du i det oeverste omraade af formen(30 pixels) kunne dragge fra. Det er altsaa hvis du kopierer 100% min kode, og ikke aendrer noget andet.

Hvis du stadig har det gamle project(det der kom med fejlmeddelelse), saa proev at adder:

{
}

efter form_load functions deklarationen, saa det kommer til at se saaledes ud:

Form1_Load(object sender, System.EventArgs e)
{
}

Saa skulle det vist ogsaa vaere paa plads.
Avatar billede spooolll Nybegynder
11. august 2003 - 21:02 #8
Nu virker den!... Tak!
Mange tak! :D
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