Hallo,
wie muss ich die Eigenschaften eines Forms setzen, um ein Form zu erhalten wie z.B. beim (Vista) Lautstärkeregler (erscheint bei Klick auf Lautsprecher-Icon im Tray)?
Das Form hat weder ControlBox
noch Icon / Titel und damit auch keine Formleiste, ist nicht größenveränderbar, hat aber trotzdem nicht den FormBorderStyle
wie FixedSingle
. Ich habe es schon mit FixedDialog
probiert, was aber ohne Formleiste auch nicht so aussieht wie gewünscht.
Edit: Im Anhang nochmal das gewünschte Ergebnis ... So soll es aussehen, nur eben nicht größenveränderbar sein.
m0rius
Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg
Schon mal mit ControlBox ausschalten versucht? Und zusätzlich keinen Formtext, dann kommst fast an das gewünschte rann. Zum Schluss kannstes noch Locken, dann is es auch nicht mehr Größenveränderbar.
lg Anja
Carpe Diem! =)
Hallo anja,
das ist ja mein bisheriges Resultat - nur möchte ich wissen, wie ich noch einstelle, dass sich die Größe nicht ändern lässt 😉.
m0rius
Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg
Hallo anja,
Zum Schluss kannstes noch Locken, dann is es auch nicht mehr Größenveränderbar.
Das habe ich auch schon versucht. Ich habe im Designer Locked
auf true
gesetzt, das ganze Form ist aber größenveränderbar wie eh und je.
m0rius
Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg
Komisch, habs eben bei meinem Form ausprobiet und es war nich veränderbar.
... Seltsam ... ?(
Carpe Diem! =)
Hallo m0rius
vielleicht bringt es auch etwas, wenn du die OnResize-Methode des Forms überschreibst und die Größenänderung dort abfängst? Zwar sicher nicht die sauberste Lösung (bei mir funktioniert Anja's Lösung auch), aber zumindest als Workaround...
Gruß Michbeck1983
Neulich im Computerkurs:
Mein Computer kennt Else nicht! 😁
[URL]XING-Profil[/URL]
Hallo Michbeck1983,
das wäre sicher eine Lösung, ich fände es aber trotzdem irritierend, wenn der Cursor zum Pfeil wird und das Ziehen nichts bringt.
m0rius
Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg
Hallo m0rius,
... ich fände es aber trotzdem irritierend, wenn der Cursor zum Pfeil wird und das Ziehen nichts bringt.
m0rius
Stimmt natürlich. Dann müsste man noch das Ändern des Mauscursors abfangen etc... Das habe ich nicht bedacht 8o
Gruß Michbeck1983
Neulich im Computerkurs:
Mein Computer kennt Else nicht! 😁
[URL]XING-Profil[/URL]
Hallo Anja,
kannst du mir mal dein Beispielprojekt schicken?
Ich würde mir gerne mal die Einstellungen ansehen. Es scheint ja genau das zu sein, was ich suche.
m0rius
Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg
Hallo zusammen,
Komisch, habs eben bei meinem Form ausprobiet und es war nich veränderbar.
Nur im Designer oder auch zur Laufzeit?
Die Locked Property beeinflusst nämlich IMHO nur den Designer.
Als besseren Workaround kannst du festlegen, dass Size = MinimumSize = MaximumSize.
Dann erscheinen aber immer noch die "Resizepfeile".
Ansonsten wirst du vermutlich gewisse Windows-Messages abfangen müssen.
Welche das sind, versuche ich gerade herauszufinden. 🙂
Hallo winSharp93,
Die Locked Property beeinflusst nämlich IMHO nur den Designer.
Genau das tut er in meinem Fall.
Als besseren Workaround kannst du festlegen, dass Size = MinimumSize = MaximumSize.
Oops ... Das hatte ich in einem anderen Beitrag gepostet, aber editiert, weil ich dachte, das tut hier nichts zur Sache. War mein Workaround bisher ...
Dann erscheinen aber immer noch die "Resizepfeile".
... mit genau diesen Problemen.
Aber soweit ich das verstanden habe, läuft es ja bei Anja, oder?
Dass es funktioniert, sieht man ja am Audio-Form; u.U. sind da aber auch die Resize-Pfeile händisch entfernt ...
m0rius
Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg
War nur ein kleines Probeprogramm gewesen, habs einfach mal so abgeändert wie dus brauchtest. 😃
Carpe Diem! =)
Ich hab das auch Ausgeführt und es hat sich nich verändern lassen. 😃
lg Anja
Carpe Diem! =)
Ansonsten wirst du vermutlich gewisse Windows-Messages abfangen müssen.
Welche das sind, versuche ich gerade herauszufinden. 😃
So klappt es bei mir:
/// <summary>
/// The WM_SETCURSOR message is sent to a window if the mouse causes the cursor to move within a window and mouse input is not captured.
/// </summary>
private const int WM_SETCURSOR = 0x0020;
protected override void WndProc(ref Message m)
{
if (m.Msg == WM_SETCURSOR && !this.RectangleToScreen(this.ClientRectangle).Contains(Control.MousePosition))
{
SetCursor(Cursors.Default.Handle);
return;
}
base.WndProc(ref m);
}
[DllImport("user32.dll")]
static extern IntPtr SetCursor(IntPtr hCursor);
Hallo Anja,
die Größe hat sich bei mir auch nicht verändern lassen, allerdings sehe ich den Rahmen überhaupt nicht.
So sieht das Ganze bei mir aus (s. Anhang):
m0rius
Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg
Also das der Rahmen verschwindet ist normal wenn man ControlBox und Formtext ausschaltet.
lg
Carpe Diem! =)
Hallo Anja,
besitzt du Vista? Wenn ja, klick doch mal auf das Lautsprecher-Icon im Tray.
Daraufhin erscheint das Form aus dem Anhang - und dessen Größe lässt sich nicht verändern.
m0rius
Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg
Hab Vista Daheim, aber auf Arbeit hab ich nur XP. 😃 Kanns ja mal im Vista testen und mich nochmal melden. 😃
lg
Carpe Diem! =)
Hallo winSharp93,
danke, sollte es keine andere Lösung geben, werde ich dein Workaround verwenden.
Hallo Anja,
alles klar ...
m0rius
Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg
Sorry, aber hab auch im Vista keine neuen Einstellungen gefunden. Man müsste in den Windows - Quellcode schauen können. 😉
lg Anja
Carpe Diem! =)
Hallo Anja,
macht nichts, trotzdem danke 😃.
m0rius
Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg
Hallo m0rius,
selbst zeichnen.
Wenn du versuchst, die abgerundeten Ecken zu zeichnen, dann bemüh google mit Rounded Rectangle. Auf codeproject gibt es dazu auch etwas entsprechendes.
Den Rahmen zeichnest du gerendert (Graphics.SmoothinMode = AntiAlias) damit das ordentlich aussieht.
Erfordert zwar etwas Geduld, aber machbar ist das.
> Codejunky <
selbst zeichnen.
Ob das eine so gute Lösung darstellt, wage ich zu bezweifeln 🤔
Spätestens mit der Milchglastransparenz von Aero kriegt man da massive Probleme...
Mein Workaround ist ja auch gar nicht so workaroundig - eine elegantere Möglichkeit sehe ich keine.
Zumal anscheinend auch die Windowsdialoge das so machen:
Mithilfe von Spy++ habe ich (dank eines Bugs, der verhinderte, dass der Dialog gleich wieder verschwand) den WindowStyle des Lautstärkedialogs ausgelesen: 9404004C; der ExtendedStyle lautet: 0x08010108.
Schreibe ich nun in einer Form:
protected override CreateParams CreateParams
{
get
{
CreateParams param = base.CreateParams;
//Entspricht in etwa
//param.Style = unchecked((int) (WindowStyles.WS_POPUP | WindowStyles.WS_VISIBLE | WindowStyles.WS_THICKFRAME | WindowStyles.WS_CLIPSIBLINGS));
//param.ExStyle = unchecked((int) (WindowStyles.WS_EX_LEFT | WindowStyles.WS_EX_LTRREADING | WindowStyles.WS_EX_TOPMOST | WindowStyles.WS_EX_RIGHTSCROLLBAR | WindowStyles.WS_EX_WINDOWEDGE));
param.Style = unchecked((int)0x9404004C);
param.ExStyle = unchecked((int) 0x08010108);
return param;
}
}
lässt diese sich immer noch in ihrer Größe ändern.
Drück einfach auf das Form, anschließend stellst du im Eigenschaftsfenster bei Darstellung --> FormBoarderStyle --> FixedSingle ein dann kannst du den Rahmen nicht mehr verändern.
Es kommen auch keine unschönen Cursors und zeichnen musst du auch nichts
genauso wie beim Lautstärkeregler 8)
probiers einfach mal, klappt prima auch mit Aero 😁
Sizzla
probiers einfach mal, klappt prima auch mit Aero
Bei mir nicht:
Wenn du es so gemacht hast wie ich es erklärt habe, geht es!
Mach mal ein neues Projekt und versuche es bei normalen Standard Form.
Falls es dann noch immer nicht geht liegt es vl an írgendwelchen Eigenschaften.
Ich kann aber gerne mal ein leeres Projekt hochladen um zu sehen ob es dann bei dir geht oder nicht.
Sizzla
EDIT: wieso sehen bei dir die ränder so komisch aus?
Hallo Sizzla,
EDIT: wieso sehen bei dir die ränder so komisch aus?
Das tun sie bei mir auch ... Das war ja der Grund, weswegen ich diesen Thread eröffnet habe ...
Edit: s. Ausgangspost, da ist mein Versuch schon beschrieben ...
m0rius
Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg
Ich kann aber gerne mal ein leeres Projekt hochladen um zu sehen ob es dann bei dir geht oder nicht.
Ja, das wäre nett.
PS: Bilder bitte nicht in IMG-Tags einbetten sondern als Anhang hinzufügen.
So bei mir funktioniert es ich hoffe auch bei euch.
Im Anhang ist das leere TestProjekt welches mit VS2008 erstellt wurde zu downloaden.
Sizzla
Hallo Sizzla,
ich verweise nochmal auf meinen Ausgangspost ... Dieses Formular kriege ich auch hin, allerdings nicht - wie z.B. beim Lautstärkepegel unter Vista - ohne Formleiste und gleichzeitig unresizable ...
m0rius
Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg
Hallo zusammen,
in der Zwischenzeit gibt es eine Lösung von aadler, s. Vorlage für eine Windows Vista/7 Tray Application.
m0rius
Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg