Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
FormBorderStyle eines Forms
m0rius
myCSharp.de - Member

Avatar #avatar-3125.png


Dabei seit:
Beiträge: 1043

Themenstarter:

FormBorderStyle eines Forms

beantworten | zitieren | melden

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
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von m0rius am .
Attachments
Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg
private Nachricht | Beiträge des Benutzers
Anja
myCSharp.de - Member



Dabei seit:
Beiträge: 14
Herkunft: Gera, Thüringen

beantworten | zitieren | melden

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
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Anja am .
Carpe Diem! =)
private Nachricht | Beiträge des Benutzers
m0rius
myCSharp.de - Member

Avatar #avatar-3125.png


Dabei seit:
Beiträge: 1043

Themenstarter:

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
Anja
myCSharp.de - Member



Dabei seit:
Beiträge: 14
Herkunft: Gera, Thüringen

beantworten | zitieren | melden

Hab Antwort erweitert. :)

lg
Carpe Diem! =)
private Nachricht | Beiträge des Benutzers
m0rius
myCSharp.de - Member

Avatar #avatar-3125.png


Dabei seit:
Beiträge: 1043

Themenstarter:

beantworten | zitieren | melden

Hallo anja,
Zitat von 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
private Nachricht | Beiträge des Benutzers
Anja
myCSharp.de - Member



Dabei seit:
Beiträge: 14
Herkunft: Gera, Thüringen

beantworten | zitieren | melden

Komisch, habs eben bei meinem Form ausprobiet und es war nich veränderbar.
... Seltsam ... ?(
Carpe Diem! =)
private Nachricht | Beiträge des Benutzers
Michbeck1983
myCSharp.de - Member

Avatar #avatar-2965.gif


Dabei seit:
Beiträge: 264
Herkunft: Augsburg

beantworten | zitieren | melden

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]
private Nachricht | Beiträge des Benutzers
m0rius
myCSharp.de - Member

Avatar #avatar-3125.png


Dabei seit:
Beiträge: 1043

Themenstarter:

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
Michbeck1983
myCSharp.de - Member

Avatar #avatar-2965.gif


Dabei seit:
Beiträge: 264
Herkunft: Augsburg

beantworten | zitieren | melden

Hallo m0rius,
Zitat von 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]
private Nachricht | Beiträge des Benutzers
m0rius
myCSharp.de - Member

Avatar #avatar-3125.png


Dabei seit:
Beiträge: 1043

Themenstarter:

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
winSharp93
myCSharp.de - Experte

Avatar #avatar-2918.png


Dabei seit:
Beiträge: 6155
Herkunft: Stuttgart

beantworten | zitieren | melden

Hallo zusammen,
Zitat von Anja
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.
private Nachricht | Beiträge des Benutzers
m0rius
myCSharp.de - Member

Avatar #avatar-3125.png


Dabei seit:
Beiträge: 1043

Themenstarter:

beantworten | zitieren | melden

Hallo winSharp93,
Zitat von winSharp93
Die Locked Property beeinflusst nämlich IMHO nur den Designer.
Genau das tut er in meinem Fall.
Zitat von winSharp93
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 ...
Zitat von winSharp93
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
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von m0rius am .
Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg
private Nachricht | Beiträge des Benutzers
Anja
myCSharp.de - Member



Dabei seit:
Beiträge: 14
Herkunft: Gera, Thüringen

beantworten | zitieren | melden

War nur ein kleines Probeprogramm gewesen, habs einfach mal so abgeändert wie dus brauchtest. :)
Attachments
Carpe Diem! =)
private Nachricht | Beiträge des Benutzers
Anja
myCSharp.de - Member



Dabei seit:
Beiträge: 14
Herkunft: Gera, Thüringen

beantworten | zitieren | melden

Ich hab das auch Ausgeführt und es hat sich nich verändern lassen. :)

lg Anja
Carpe Diem! =)
private Nachricht | Beiträge des Benutzers
winSharp93
myCSharp.de - Experte

Avatar #avatar-2918.png


Dabei seit:
Beiträge: 6155
Herkunft: Stuttgart

beantworten | zitieren | melden

Zitat von winSharp93
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);
private Nachricht | Beiträge des Benutzers
m0rius
myCSharp.de - Member

Avatar #avatar-3125.png


Dabei seit:
Beiträge: 1043

Themenstarter:

beantworten | zitieren | melden

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
Attachments
Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg
private Nachricht | Beiträge des Benutzers
Anja
myCSharp.de - Member



Dabei seit:
Beiträge: 14
Herkunft: Gera, Thüringen

beantworten | zitieren | melden

Also das der Rahmen verschwindet ist normal wenn man ControlBox und Formtext ausschaltet.

lg
Carpe Diem! =)
private Nachricht | Beiträge des Benutzers
m0rius
myCSharp.de - Member

Avatar #avatar-3125.png


Dabei seit:
Beiträge: 1043

Themenstarter:

beantworten | zitieren | melden

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
Attachments
Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg
private Nachricht | Beiträge des Benutzers
Anja
myCSharp.de - Member



Dabei seit:
Beiträge: 14
Herkunft: Gera, Thüringen

beantworten | zitieren | melden

Hab Vista Daheim, aber auf Arbeit hab ich nur XP. :) Kanns ja mal im Vista testen und mich nochmal melden. :)

lg
Carpe Diem! =)
private Nachricht | Beiträge des Benutzers
m0rius
myCSharp.de - Member

Avatar #avatar-3125.png


Dabei seit:
Beiträge: 1043

Themenstarter:

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
Anja
myCSharp.de - Member



Dabei seit:
Beiträge: 14
Herkunft: Gera, Thüringen

beantworten | zitieren | melden

Sorry, aber hab auch im Vista keine neuen Einstellungen gefunden. Man müsste in den Windows - Quellcode schauen können.

lg Anja
Carpe Diem! =)
private Nachricht | Beiträge des Benutzers
m0rius
myCSharp.de - Member

Avatar #avatar-3125.png


Dabei seit:
Beiträge: 1043

Themenstarter:

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
JunkyXL
myCSharp.de - Experte

Avatar #avatar-3234.gif


Dabei seit:
Beiträge: 1732
Herkunft: Ein paar Bytes südlich von string

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers
winSharp93
myCSharp.de - Experte

Avatar #avatar-2918.png


Dabei seit:
Beiträge: 6155
Herkunft: Stuttgart

beantworten | zitieren | melden

Zitat von JunkyXL
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.
private Nachricht | Beiträge des Benutzers
Sizzla
myCSharp.de - Member



Dabei seit:
Beiträge: 29
Herkunft: Klagenfurt

beantworten | zitieren | melden

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
Dieser Beitrag wurde 3 mal editiert, zum letzten Mal von Sizzla am .
private Nachricht | Beiträge des Benutzers
winSharp93
myCSharp.de - Experte

Avatar #avatar-2918.png


Dabei seit:
Beiträge: 6155
Herkunft: Stuttgart

beantworten | zitieren | melden

Zitat von Sizzla
probiers einfach mal, klappt prima auch mit Aero
Bei mir nicht:
Attachments
private Nachricht | Beiträge des Benutzers
Sizzla
myCSharp.de - Member



Dabei seit:
Beiträge: 29
Herkunft: Klagenfurt

beantworten | zitieren | melden

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?
Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von Sizzla am .
Attachments
private Nachricht | Beiträge des Benutzers
m0rius
myCSharp.de - Member

Avatar #avatar-3125.png


Dabei seit:
Beiträge: 1043

Themenstarter:

beantworten | zitieren | melden

Hallo Sizzla,
Zitat von 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
private Nachricht | Beiträge des Benutzers
winSharp93
myCSharp.de - Experte

Avatar #avatar-2918.png


Dabei seit:
Beiträge: 6155
Herkunft: Stuttgart

beantworten | zitieren | melden

Zitat von Sizzla
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.
private Nachricht | Beiträge des Benutzers
Sizzla
myCSharp.de - Member



Dabei seit:
Beiträge: 29
Herkunft: Klagenfurt

beantworten | zitieren | melden

So bei mir funktioniert es ich hoffe auch bei euch.

Im Anhang ist das leere TestProjekt welches mit VS2008 erstellt wurde zu downloaden.

Sizzla
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Sizzla am .
Attachments
private Nachricht | Beiträge des Benutzers