Loch in form, größe ändern + verschieben

  • VB.NET

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

    Loch in form, größe ändern + verschieben

    hi,

    Sry ich bin mir nicht sicher, ob ich hier richtig bin... Also ich hab eine form, welche maximiert und ohne Rahmen ist (also der ganze Bildschirm ist ausgefüllt). jetzt will ich dort ein (rechteckiges) Loch rein machen, bei dem am (während das Programm läuft) die Größe und Position ändern kann. Ich hab es hingekommen mit Transparenckey und einer textbox mit der gleichen farbe ein loch in die Form zu machen, aber davon kann man natürlich weder Größe, noch Position ändern. ich bin leider noch im Anfangsstadium meiner Programirkünste, also bitte nicht zu kompliziert beschreiben, bzw. vileicht wenn möglich Beispielprogramme hochladen.

    Vielen dank
    Beschäftige dich mal mit GDI.
    Nimm ein Panel, wechsel in das Paint-Event des Panels und schreib:

    VB.NET-Quellcode

    1. 'nehmen wir an, Gelb ist dein Transparency Key
    2. e.Graphics.FillRectangle(Brushes.Yellow, New Rectangle(0,0,Panel.ClientRectangle.Width, Panel.ClientRectangle.Height))


    Wenn du ein Rundes Loch haben willst, kannst du anstatt FillRectangle FillElipse benutzen (ich weiss nicht, ob richtig geschrieben)
    also erstmal vielen dank, aber das mit der picbox funktioniert bei mir nicht. Vielleicht meinen wir was anderes, ich meinte man soll größe und position ändern können soll, während das Programm aktiv ist.

    @ Myrax: also ich glaube im PaintEvent war ich , dann kommt aber die Meldung, dass eine Deklaration für "e" erwartet wird. es kann aber auch sein, das ich gar nicht im PatinEvent war, davon hab ich vorher nämlich noch nie etwas gehört.
    Hi
    schau dir mal die Region-Eigenschaft der Form an. Die finde ich schöner, als TransparencyKey, weil dabei keine Farben betroffen sind. Instanzen der Region-Klasse bieten dir die nötigen Methoden an.
    So zum Beispiel:

    VB.NET-Quellcode

    1. Dim rgn As New Region()
    2. rgn.Exclude(Bounds)
    3. Me.Region = rgn


    Regions kann man auch schön erstellen, indem man einen GraphicsPath an die Methoden/den Konstruktor übergibt.

    Gruß
    ~blaze~