Dialog nicht verschiebbar???



  • Hi,

    ich programmiere grade eine Anwendung und eine Anforderung ist es, dass der Dialog nicht verscheibbar ist. Also das Dingen soll den gesamten Bildschirm bedecken und damit "den PC sperren", d.h. es soll halt keine Möglichkeit geben, an andere Reosurcen (Desktop) zu gelangen.

    Wenn ich die Anwendung als Maximized starte und die maximizebox auf false setze kann ich den Dialog weiterhin kustig auf meinem Desktop hin und her schieben. Wenn ich die Maximizebox jedoch auf true setze dann ist der Dialog (im Status "Maximized") nicht verschiebbar.

    das blöde ist nur, dass ich alle diese Controlboxen (also auch die Maximizebox), nicht sichtbar haben darf.

    hat einer ne idee, wie ich das schaffen kann, dass mein Dialog nicht verschoben werden kann auch wenn ich die Controlboxen deaktiviert habe??

    Habe es schon versucht beim verschieben der Anwendung diese einfach wieder auf die Startposition zu setzen. Das geht zwar, ist aber äußerst unschön.

    Für sinnvolle Tipps bin ich dankbar.

    gruß
    Manuel

    --------
    Nachtrag: Ich benutze das .NET-Framework 2.0



  • SCHWEIGT, denn der ghetto-coder ergreift nun das wort!!

    ich habe mal ähnliches programmiert, nämlich ein programm zum sperren des desktops. ich habe einfach eine form mit borderstyle = none benutzt und beim initialisieren der form, die größe auf die aktuelle bildschirmauflösung + einem kleinen sicherheitswert gestellt (sonst bleibt ein kleiner, anklickbarer rand über). wenn die form noch die eigenschaft stayontop (oder so ähnlich) hat, ist der desktop gewissermaßen gesperrt.

    für mein tool habe ich noch den taskmanager gesperrt und das closing-event abgefangen.

    vielleicht hilft dir das ja weiter.

    der ghetto-coder hat gesprochen...



  • naja nciht so ganz. wenn der andwender doch auf die systemleiste klickt kann er doch die anwendung verschieben und dann wieder andere lustige sachen machen.

    oder sehe ich das falsch??

    momentan mache ich es so, dass ich das event "move" abfange und dann wieder auf die Korrds 0;0 setze. ist aber unschön weil das dann immer hin und her flackert.

    Noch jemand eine Idee????



  • Ob der Dialog nun den ganzen Bildschirm überdeckt oder nicht, per Taskmanager kann ich in der Regel den Prozess abbrechen, es sei denn, dieser fängt auch dieses Tastaturereignis ab. Wovon allerdings abzuraten ist, denn dann würde es einen Neustart erforderlich machen, wenn die Anwendung sich aufhängt.



  • Nebu schrieb:

    naja nciht so ganz. wenn der andwender doch auf die systemleiste klickt kann er doch die anwendung verschieben und dann wieder andere lustige sachen machen.

    oder sehe ich das falsch??

    momentan mache ich es so, dass ich das event "move" abfange und dann wieder auf die Korrds 0;0 setze. ist aber unschön weil das dann immer hin und her flackert.

    Noch jemand eine Idee????

    Bei Borderstyle= none gibts es keine Titelleiste. Oder muss die Titelleiste unbedingt drin sein?

    der ghetto-coder hat gesprochen.



  • ich rbauche die titelleiste. nur halt net die blöden buttons(minimieren,maximieren,schliessen)... nur dadurch dass die buttons weg sind, kann man auch im maximierten modus wieder das dingen verschieben... total blöd

    werde wohl die buttons drin lassen und die einzelnen ereignisse abfangen oder so. aber das ist natürlich nicht wirklich schön....


Anmelden zum Antworten