Autor Beitrag
KainPlan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 27

Vista Buisness, Windows 7
C/C++, C#, PHP...
BeitragVerfasst: Fr 13.02.09 00:54 
Hallo arbeite an einer kleinen Desktop-Erweiterung. Fungiert als Appbar. Dachte erst es liegt an der Appbar habe dann aber nochmal so ein seperates Projekt angelegt ein Form erstellt Border = none und die höhe der Formulars auf 30 Pixel gestellt. Wenn man ABER jetzt das Program startet wird es unbegründet auf 36 Pixel erhöht!!!! Mich macht das hier gerade wahnsinnig. ich hab keinen blassen schimmer an was das liegen soll / kann.

Hat da jemand das Gleiche Problem??

OS ist Vista 32Bit.


Zuletzt bearbeitet von KainPlan am Fr 13.02.09 15:03, insgesamt 1-mal bearbeitet
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 13.02.09 01:49 
Das lässt sich sehr einfach erklären. Solange das Formular einen Rand hat ist die minimale Höhe (unter Vista standardmäßig meine ich) 36 Pixel. Denn die Titelleiste hat diese Höhe. In der IDE kann ich die Höhe mit FormBorderStyle auf None auch auf 30 setzen, und es sieht auch korrekt aus.

Aber: Wenn jetzt das Formular erzeugt wird, dann wird zuerst die Größe und danach der FormBorderStyle gesetzt. Bevor der aber auf None gesetzt ist, wird die Höhe automatisch auf 36 korrigiert.

Die Lösung ist sehr einfach: Im Event Load des Formulars den FormBorderStyle und danach die Höhe setzen. Das funktioniert wunderbar.
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
        private void Form1_Load(object sender, EventArgs e)
        {
            FormBorderStyle = FormBorderStyle.None;
            Size = new Size(300, 30);
        }
;-)
UGrohne
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: Fr 13.02.09 08:36 
Hallo,

bitte ändere den Titel des Topics, da er wenig über das eigentlich Thema verrät. Hier der entsprechende Absatz aus den Richtlinien:

1.2 Beiträge:
Bitte formuliere den Betreff Deiner Beiträge so, dass andere Mitglieder anhand dieser bereits das eigentliche Thema festmachen können. Beiträge wie etwa "Eine Anfängerfrage" oder "Weiß jemand, wie das geht?" lassen den Leser im Unklaren darüber, was das Thema der Diskussion ist.[...]


Einfach oben bei Deinem ersten Beitrag auf user defined image oder user defined image klicken und den Titel ändern. Danke Dir!

Viele Grüße,

Uwe
KainPlan Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 27

Vista Buisness, Windows 7
C/C++, C#, PHP...
BeitragVerfasst: Fr 13.02.09 15:23 
@jaenicke: Danke erstmal werd das gleich direkt ausprobieren... garnicht auf die Idee gekommen mal die folge im designer zu betrachten...

@UGrohne: Klar sicher. Sorry nochmal, war gestern Nacht echt ein bisschen gestresst deswegen.

@all:

Jetzt zum nächsten Problem :). Ich hab mir jetzt noch ein UserControl erstellt, ein DriveView, das ist eine Auflistung von selbstgezeichneten
Buttons die die DriveInfo's des Systems spiegeln.
Hier mal ein Pic: user defined image
Wie man sieht läuft das ganze im Betrieb wunderbar aber der Designer der Form auf der dieses UserControl liegt schmiert immer mit einem Fehler ab:
"Gerät nicht verfügbar". Zufällig weiß ich das das ganze eine Fehlermeldung der Klasse DriveInfo ist die ich in einem public gekapselten Feld in
der UserControl verwende.

Weiß da jemand eventuell eine Lösung für?
Console.Beep()
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 43

Win XP, Ubuntu 8.10
C# (VS 2008 Exp) C++ (VS 2008 Exp)
BeitragVerfasst: Fr 13.02.09 15:28 
Dann ist ein Gerät halt nicht vorhanden oder verfügbar. Debuge doch einfach mal.


Zuletzt bearbeitet von Console.Beep() am Fr 13.02.09 15:28, insgesamt 1-mal bearbeitet
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 13.02.09 15:28 
Neue Frage, neues Thema bitte.

Aber da die Antwort vermutlich sehr kurz ist... Das sollte helfen:
msdn.microsoft.com/d...nent.designmode.aspx
Zudem solltest du den Fehler am besten abfangen.
KainPlan Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 27

Vista Buisness, Windows 7
C/C++, C#, PHP...
BeitragVerfasst: Fr 13.02.09 16:24 
user profile iconConsole.Beep() hat folgendes geschrieben Zum zitierten Posting springen:
Dann ist ein Gerät halt nicht vorhanden oder verfügbar. Debuge doch einfach mal.

Hm leider weis ich nicht ob man den Designer Debugen kann, erhlich gesagt bezweil ich das stark :)

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Neue Frage, neues Thema bitte.

Aber da die Antwort vermutlich sehr kurz ist... Das sollte helfen:
msdn.microsoft.com/d...nent.designmode.aspx
Zudem solltest du den Fehler am besten abfangen.


Ja Hilft. Aber abzufangen ist ja nichts. Da der fehler nicht auftritt im Betrieb.. halt nur im Designer.. komisch eigtl.
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Fr 13.02.09 16:32 
user profile iconKainPlan hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconConsole.Beep() hat folgendes geschrieben Zum zitierten Posting springen:
Dann ist ein Gerät halt nicht vorhanden oder verfügbar. Debuge doch einfach mal.

Hm leider weis ich nicht ob man den Designer Debugen kann, erhlich gesagt bezweil ich das stark :)
Als zu debuggende Anwendung VS (devenv.exe) einstellen, darin dann den Designer öffnen, fertig :) .

user profile iconKainPlan hat folgendes geschrieben Zum zitierten Posting springen:
Ja Hilft. Aber abzufangen ist ja nichts. Da der fehler nicht auftritt im Betrieb.. halt nur im Designer.. komisch eigtl.
Ich denke mal, jaenicke meinte, dass du zur Design Time gar nicht erst nach Laufwerken suchst, sondern nur einen Dummy-Wert anzeigst.

user profile iconKainPlan hat folgendes geschrieben Zum zitierten Posting springen:
Zufällig weiß ich das das ganze eine Fehlermeldung der Klasse DriveInfo ist die ich in einem public gekapselten Feld in der UserControl verwende.
Wenn du damit eine Property meinst: Setze ein [Browsable(false)] davor.

_________________
>λ=
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 13.02.09 16:40 
user profile iconKha hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconKainPlan hat folgendes geschrieben Zum zitierten Posting springen:
Ja Hilft. Aber abzufangen ist ja nichts. Da der fehler nicht auftritt im Betrieb.. halt nur im Designer.. komisch eigtl.
Ich denke mal, jaenicke meinte, dass du zur Design Time gar nicht erst nach Laufwerken suchst, sondern nur einen Dummy-Wert anzeigst.
Entweder so oder im Code nur den entsprechenden Fehler abfangen, falls es ansonsten funktioniert.

Denn irgendwo muss der Fehler ja geworfen werden, ich vermute beim (leeren) Diskettenlaufwerk / Speicherkartenleser oder so. Wenn dem so wäre, könnten die weiteren Laufwerke trotzdem auch im Design angezeigt werden.