feheler in der graphischen darstellung der steuerelemente

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von FreakJNS.

    feheler in der graphischen darstellung der steuerelemente

    Hi,
    ich schreibe ein Programm für einen Tabletpc. So sieht es auf meinen Desktop-PC aus:



    Nachdem es praktsich fertig geschrieben war habe ich es das erste mal auf dem tabletpc ausprobiert. Da werden die Steuerelemente aber falsch dargestellt. Irgendwie zusammengestaucht:



    Hatte schonal jemand ein ähnliches Problem oder eine Idee woran das liegen könnte? Ich vermutete, dass an der niedrigeren Bildschirmauflösung liegt, aber wenn ich das Programm auf dem Desktop-PC laufen lasse, die Form jedoch vorher auf eine vergleichbare Größe zusammenstauche, dann wird auch dort alles gut dargestellt.

    Hier noch der dazugehörige code:

    VB.NET-Quellcode

    1. '3.) Antwortbox darstellen
    2. Select Case WMAufgabenset(current_task).Length Mod 9 'zeigt die Response-Matrizen je nach Länge der aktuellen Aufgabe
    3. Case 0
    4. GroupBoxAntwort.Size = New Size(214, 279)
    5. GroupBoxAntwort.Controls.Add(GroupBox1)
    6. GroupBoxAntwort.Controls.Add(cmdOK)
    7. GroupBoxAntwort.Controls.Add(ProgressBar1)
    8. GroupBox1.Location = New Point(6, 6)
    9. cmdOK.Location = New Point(47, 211)
    10. ProgressBar1.Location = New Point(47, 262)
    11. GroupBox1.Show()
    12. Case 1
    13. GroupBoxAntwort.Size = New Size(422, 279)
    14. GroupBoxAntwort.Controls.Add(GroupBox1)
    15. GroupBoxAntwort.Controls.Add(GroupBox2)
    16. GroupBoxAntwort.Controls.Add(cmdOK)
    17. GroupBoxAntwort.Controls.Add(ProgressBar1)
    18. GroupBox1.Location = New Point(6, 6)
    19. GroupBox2.Location = New Point(214, 6)
    20. cmdOK.Location = New Point(151, 211)
    21. ProgressBar1.Location = New Point(151, 262)
    22. GroupBox1.Show()
    23. GroupBox2.Show()
    24. Case 2
    25. GroupBoxAntwort.Size = New Size(630, 279)
    26. GroupBoxAntwort.Controls.Add(GroupBox1)
    27. GroupBoxAntwort.Controls.Add(GroupBox2)
    28. GroupBoxAntwort.Controls.Add(GroupBox3)
    29. GroupBoxAntwort.Controls.Add(cmdOK)
    30. GroupBoxAntwort.Controls.Add(ProgressBar1)
    31. GroupBox1.Location = New Point(6, 6)
    32. GroupBox2.Location = New Point(214, 6)
    33. GroupBox3.Location = New Point(422, 6)
    34. cmdOK.Location = New Point(255, 211)
    35. ProgressBar1.Location = New Point(255, 262)
    36. GroupBox1.Show()
    37. GroupBox2.Show()
    38. GroupBox3.Show()
    39. Case 3
    40. GroupBoxAntwort.Size = New Size(838, 279)
    41. GroupBoxAntwort.Controls.Add(GroupBox1)
    42. GroupBoxAntwort.Controls.Add(GroupBox2)
    43. GroupBoxAntwort.Controls.Add(GroupBox3)
    44. GroupBoxAntwort.Controls.Add(GroupBox4)
    45. GroupBoxAntwort.Controls.Add(cmdOK)
    46. GroupBoxAntwort.Controls.Add(ProgressBar1)
    47. GroupBox1.Location = New Point(6, 6)
    48. GroupBox2.Location = New Point(214, 6)
    49. GroupBox3.Location = New Point(422, 6)
    50. GroupBox4.Location = New Point(630, 6)
    51. cmdOK.Location = New Point(359, 211)
    52. ProgressBar1.Location = New Point(359, 262)
    53. GroupBox1.Show()
    54. GroupBox2.Show()
    55. GroupBox3.Show()
    56. GroupBox4.Show()
    57. End Select
    58. GroupBoxAntwort.Location = center(GroupBoxAntwort, Me)
    59. GroupBoxAntwort.Visible = True
    Edit: Natürlich, es liegt an der anderen Auflösungsratio. auf meinem Desktop ist die 1920:1080 = 1.77 und auf dem Tablet ist die 1280:800 = 1.6. Die Steuerelemente werden also in der Darstellung etwas zusammengestaucht, weil in der Höhe nicht so viel Platz ist. Logisch, aber ich frage mich trotzdem warum das so kommt.

    Es ist so, als würden die Steuerelemente zur Zeit der Compilierung in einer Größe erstellt, so wie sie im Designer vorgegeben sind. Zur Laufzeit jedoch werden die Informationen aus dem Designer jedoch scheinbar irgedwie in die aktuelle Bildschirmauflösung übersetzt und angepasst.

    Klingt das irgendwie sinnig?

    Ich finde nicht, denn wenn ich ein Steuerelement als size(50, 50) darstellen lasse, dann sollte es doch immer quadratisch sein, auch wenn weiniger Platzt insgesamt vorhanden ist, und auch wenn der vorhandene Platz eine etwas andere Aspect-Ration hat. Ist aber nicht so. Meiner Quadrate sind nicht mehr quadratisch.

    Edit: es liegt auch nicht nur an der Size-Ratio. Die Größe ist insgesamt zu Große, von allen Steuerelementen, die im Designer erstellet werden.


    okay, ich glaube ich hab's:

    VB.NET-Quellcode

    1. Me.AutoScaleMode = Windows.Forms.AutoScaleMode.None

    nur passen jetzt meine Beschriftungen teilweise nicht mehr auf die Steuerlemente :(
    mal sehen, wie ich das löse

    Edit by der_Kurt:
    bitte keine Doppelposts -> Boardregeln
    Es gibt eine "Bearbeiten"-Funktion für diesen Zweck
    * Beiträge zusammengefügt *

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „der_Kurt“ ()

    naja, controls benutzen um irgendetwas grafisch darzustellen ist meiner meinung nach in den meisten fällen zweckentfremdung. Die Teile sind nunmal nicht für sowas da^^
    Für mich sieht das nach einem TicTacToe aus... richtig? verwende doch GDI+ und zeichne das ganze damit. Ein eigenes TTT-Control wär doch mal was^^