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.
Hallo blutiger_anfänger,
Fenster, die ich nicht verschieben kann, nerven mich.
Wenn du es trotzdem machen willst: FormBorderStyle.None
herbivore
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.
wndproc überschreiben, nachricht abfangen und methode verlassen ohne die nachricht an die base weiterzuleiten. basta!
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