Laden...

Form eine "feste" Location geben

Erstellt von blutiger_anfänger vor 15 Jahren Letzter Beitrag vor 15 Jahren 742 Views
B
blutiger_anfänger Themenstarter:in
293 Beiträge seit 2008
vor 15 Jahren
Form eine "feste" Location geben

Irgendwie scheint mich heute das Glück mal wieder verlassen zu haben, oder ich hau' einfach die falschen Tags in Google...

Ich habe eine kleines Form (245px*151px), dass unten recht als Statusfenster angezeigt werden soll, bis der User ein weiteres, von mir festgelegtes Event auslöst.

Gut, gut - die positionierung bekomm ich hin, jedoch soll der User das Form nicht verschieben können. Ich finde nun aber leider keine Property in der ich festlegen kann, dass das Form nicht verschoben werden kann.

Meine momentane Notlösung sieht wie folgt aus:


private void FormCaptcha_LocationChanged(object sender, EventArgs e)
        {
            Rectangle r = Screen.PrimaryScreen.WorkingArea;
            this.Location = new Point(r.Width - 245, r.Height - 151);
        }

Sprich, wenn der User das Form verschiebt, wird es wieder an seinen Platz gerückt. Das sieht dank ständigem aufrufen der PaintMethode des Forms aber nicht gerade schick aus...

Ich hatte auch schon überlegt einfach das MouseDown-Event abzufangen, sodass der User das Form erst garnicht "packen" kann, doch in den MouseEvents scheint es sowas wie


e.Handled = true;

ja leider auch nicht zu geben...

Ich hoffe ihr könnt mir helfen eine elegantere Lösung zu finden.

Liebe Grüße,
ein blutiger_anfänger 😉

Wenn ich nicht hier bin, findest du mich auf code-bude.net.

49.485 Beiträge seit 2005
vor 15 Jahren

Hallo blutiger_anfänger,

Fenster, die ich nicht verschieben kann, nerven mich.

Wenn du es trotzdem machen willst: FormBorderStyle.None

herbivore

B
blutiger_anfänger Themenstarter:in
293 Beiträge seit 2008
vor 15 Jahren

Macht nichts 😉 Es wird dich auch nicht nerven... Ist eh nur für mich und 2-3 andere Leute, doch ohne die Interaktion, auf die das Form hinweißt ist die Effektivität gleich 0, also macht's schon Sinn, dass das Form nicht irgendwo hingezogen/verteckt wird und man vergisst zu "interagieren". 😉

Wenn ich nicht hier bin, findest du mich auf code-bude.net.

I
279 Beiträge seit 2008
vor 15 Jahren

wndproc überschreiben, nachricht abfangen und methode verlassen ohne die nachricht an die base weiterzuleiten. basta!

49.485 Beiträge seit 2005
vor 15 Jahren

Hallo iced-t89,

naja, so basta ist das nicht. 😃 So bekommt man ein Fenster, das so aussieht, als könne man es verschieben und dann geht es doch nicht. Solche Abweichungen vom Standard finde ich nicht schön. Daher auch mein Vorschlag einer etwas standardkonformeren Lösung mit FormBorderStyle.None, welches ja auch den Titelbar, an dem man das Fenster sonst verschiebt, ausblendet. Dann weiß man gleich was Sache ist.

herbivore