Hmm ich finde dazu leider nix im Netz, hab auch keine Ahnung was ich bei Google noch eingeben könnte.
Man kann die Form (nach dem Ausführen) oben an der blauen Leiste anfassen und verschieben. Ich möchte nun, dass man die Form zwar verschieben kann aber nicht über den Rand des Desktops hinaus. Also die Form soll nicht halb rechts aus dem Monitor geschoben werden können. (links, oben, unten genauso)
Gibts dafür nen Befehl oder so? Kann wer helfen?
du könntest, wenn dir wirklich nichts anderes einfällt, prüfen, ob die Form über den Rand geht, und dann die Form zurückverschieben.
Mist zu spät.
Stichworte: Control.LocationChanged-Ereignis, Control.Location-Eigenschaft, Control.Size-Eigenschaft und Screen.GetBounds-Methode
Beim Verschieben gucken, ob es über den Bildschirmrand ragt; wenn ja, die Position so verändern, dass es nicht mehr der Fall ist.
EDIT: Grr, zu langsam. Aber mehr Text 😃
Gruß,
dN!3L
Hmm komm nun doch net mehr weiter.
Ich hab mir nun den code zusammen gebastelt, das ne Messagbox kommt solbald die form das Fensterverlässt. läuft auch alles richtig so, dochich will die Zeile mit der Messagebox nun ersetzten durch, dass es sich nicht weiterschieben lassen osll. Da stehe ich aber uf dem Schlauch. Neu Zeichnen ist zwar toll, aber die Location property ist schreibgeschützt.
private void Mahjongg_LocationChanged(object sender, MouseEventArgs e)
{
if (((this.Location.X + this.Size.Width) >= breite) || (this.Location.X < 0) || ((this.Location.Y + this.Size.Height + 30) >= höhe) || (this.Location.Y < 0))
{
ausserhalb = true;
MessageBox.Show("Stop");
}
else
ausserhalb = false;
}
Denn da meine form keine Titelleiste mehr hat und dort ein toolStrip liegt , lasse ich mit dem folgendem code bei gedrückerter Moustaste das Fenster verschieben. aber wie kombiniere ich die beiden? denn auf ausserhalb == false reagiert er erst, wenn ich die muose einmal loslasse und wieder drücke.
private void Mahjongg_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
if ((e.Button == MouseButtons.Left) && (ausserhalb == false))
{
ReleaseCapture();
SendMessage(Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0);
}
}
ah super ja ich ka nicht drauf
hatte
this.location = (MousePosition.X, MousePosition.Y)
da gab natürlich nur Fehlermeldungen. Super nun funktioniert alls klasse