verschiedene Auflösung Problem

  • VB.NET
  • .NET (FX) 4.0

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von VaporiZed.

    verschiedene Auflösung Problem

    Hallo
    Ich versuche mir gerade ein Dart Programm zu erstellen.
    In meinem Dartzimmer hängt ein alter Monitor 55 Zoll mit Auflösung 1200x720. Der wird natürlich irgendwann ersetzt.
    Im Moment switche ich alse zwischen 1920x1080 und 1200x720 hin und her
    Jetzt habe ich schon bei der ersten Seite ein Problem. Alle Control passen sich an, nur die Numeric nicht. Bei 1200x720 ist alles OK
    bei 19200x1080 kann ich die Zahlen nicht so richtig sehen.

    Ich habe mal das Projekt angehängt, eventuell kann mir ja geholfen werden

    trebron57
    Dateien
    Schonmal mit WPF beschäftigt?
    Sollte genau das sein, was du suchst. So kannst du Applikationen schreiben, die sich an Auflösung und das noch größere Problem Skalierung anpassen.


    LG, Acr0most
    Wenn das Leben wirklich nur aus Nullen und Einsen besteht, dann laufen sicherlich genügen Nullen frei herum. :D
    Signature-Move 8o
    kein Problem mit privaten Konversationen zu Thema XY :thumbup:
    Du solltest mal in dieser Prozedur hier den Spezialfall einiger Controls implementieren, z.B. NumericUpDown.

    VB.NET-Quellcode

    1. Public Sub ControlResize(ByVal Ctl As Control)
    2. With Ctl
    3. Try
    4. .Font = New Font(.Font.FontFamily, .Font.Size * CSng(X), .Font.Style, GraphicsUnit.Point)
    5. Catch
    6. End Try
    7. .SetBounds(CInt(.Left * X), CInt(.Top * Y), CInt(.Width * X), CInt(.Height * Y))
    8. End With
    9. End Sub
    =============
    Erstell Dir eine neue Form.
    Pack da ein NUD rein, .Autosize = True
    und ändere den FontSize auf 24.
    Stelle fest, was da anders ist als in der Prozedur ControlResize.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „RodFromGermany“ ()

    @trebron57 Merkwürdiges Problem.
    Wenn ich im Designer einer Form dem NUD mit .AutoSize = True einen größeren Font gebe, geht das Control mit.
    Probierma, innerhalb der Controls-Collection ein neues NUD zu erstellen mit den sonstigen Properties des alten.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Hallo
    Habe das nicht hinbekommen, immer wieder der gleiche Effekt.
    Habe in den Tiefen des Internets einen Code gefunden, der funktionieren könnte.
    Einziges Problem , ich muss Strict off programmieren
    Ab dem groß geschriebenden Text werden mir alle CTL Einträge rot unterkringelt mit dem Fehler Option Strict on lässt spätes binden nicht zu

    Quellcode

    1. Private Sub ResizeThem()
    2. Dim i As Integer
    3. For i = 0 To CtlArray.Count - 1
    4. If TypeOf CtlArray.Item(i) Is TabPage Then
    5. Else
    6. If TypeOf CtlArray.Item(i) Is TabPage And [size=14]CtlArray.Item(i).parent[/size] IsNot Me Then
    7. 'SplitPanel for instance
    8. Else
    9. CtlArray.Item(i).autosize = False
    10. CtlArray.Item(i).dock = 0
    11. CtlArray.Item(i).width = CtlArray.Item(i).width * Xratio
    12. CtlArray.Item(i).left = CtlArray.Item(i).left * Xratio
    13. CtlArray.Item(i).height = CtlArray.Item(i).height * Yratio
    14. CtlArray.Item(i).top = CtlArray.Item(i).top * Yratio
    15. End If
    16. End If
    17. Next
    18. End Sub
    Markierungen im Code gehen nicht. Es ist also Zeile#6 gemeint.
    Was ist denn CtlArray?
    Wenn ich es definiere mit: Dim CtlArray = Me.Controls in Zeile#2, dann geht alls und ist Option Strict
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Supi. VB6-Grütze. Woher soll denn der Compiler dann auch wissen, was in dieser ArrayList drin verpackt ist? Dann ist klar, warum der Compiler mit Option Strict meckert. Nimm stattdessen Dim CtlArray As List(Of Control) und ordne die Controls des Formulars jener List zu. Oder nimm gleich das, was ich in Post#6 schrieb.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Hallo
    Vielen Dank. Mit deiner Änderung aus Post#6 und aus " Dim CtlArray As New ArrayList" habe ich "Dim CtlArray As New List(Of Control)" gemacht.
    Jetzt funktioniert alles so wie es soll.
    Super Danke
    P.S. wie kriegt man das Rechteck um dein DIM CTAArray... hin ?
    Nutze CodeTags, d.h. Deinen Text markieren und dann entsprechend klicken:

    Für so ein Rechteck (= Inline-Code) also das [T].
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.