vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
SEPA-Dateien erstellen inkl. IBAN-, BLZ-/Kontonummernprüfung  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Visual-Basic Einsteiger
Probleme mit dem Form_Resize Event 
Autor: V A T
Datum: 17.09.19 23:26

Hallo,

ich wüsste gerne, ob jemand sich das folgende Problem erklären kann oder ähnliche Probleme kennt:

[u]Eigentlich ein total simples Szenario:

- Ich habe eine Form.
- Sie ist so eingestellt, dass der Anwender die Größe verändern kann. Mit der Maus auf den Rand und ziehen...
- Wenn er das tut, wird über das Form_Resize Event die Abfrage ausgelöst, ob ein Mindestwert in der Höhe bzw. Breite unterschritten wurde:

- Wenn ja, wird der jeweilige Mindestwert als neue Höhe bzw. Breite gesetzt, damit die Form nicht zu klein wird:
if form.height<3000 then form.height=3000
if form.width<4000 then form.width=4000
- Wenn nicht, greift automatisch die Größenänderung des Anwenders.

Soweit wie gesagt ganz simple. Und das größer und kleiner machen funktioniert eigentlich problemlos.

[u]Außer in einer Situation...

Sobald der Anwender die Form kleiner als beide Mindestwerte zieht, wird sie zwar in Höhe und Breite wie gewünscht auf die Mindestwerte gesetzt, aber anschließend kann der Anwender die Form nicht mehr in ihrer Größe verändern. Der Mauszeiger verändert sich zwar, wenn man auf Rand oder Ecke klickt zu dem bekannten Pfeil mit zwei Spitzen, aber ein Ziehen ist danach nicht möglich.

Das Programm an sich läuft problemlos weiter. Ich kann die Form auch über die Maximieren-Schaltfläche zum Vollbild machen, aber sobald ich danach wieder über die entsprechende Schaltfläche in den veränderbaren Status gehe, habe ich wieder das "alte kleine Fenster" und kann es weiterhin nicht größer ziehen.

Zur Analyse habe ich mal ein bisschen getestet, das Form_Resize Event scheint einfach nicht mehr anzuspringen.

Kann irgendjemand mit dem Phänomen etwas anfangen?! Gefunden habe ich beim Suchen nichts...

Gruß

V A T

Vielen Dank an alle in diesem Forum, welche mir Ihre Zeit schenken und sich mit meinen Problemen befassen! Ich weiß das ernsthaft zu schätzen und danke allen, die sich mit dieser Frage befassen herzlich!!!

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Probleme mit dem Form_Resize Event 
Autor: ModeratorDieter (Moderator)
Datum: 18.09.19 07:55

Probier's mal hiermit:
Private Sub Form_Resize()
  Static bWorking As Boolean
 
  If bWorking Then Exit Sub
 
  If Me.WindowState <> vbMinimized Then
    bWorking = True
    If Me.Width < 3000 Then Me.Width = 3000
    If Me.Height < 4000 Then Me.Height = 4000
    bWorking = False
  End If
End Sub
Hintergrund: durch das Neu-Festlegen der Width bzw. Height Eigenschaft wird das Resize-Event ja schon wieder ausgelöst, obwohl der erste Durchlauf noch gar nicht vollständig abgearbeitet wurde. Daher verwende ich in solchen Fällen eine statische Variable, über die ich steuere, ob das Ereignis gewollt nicht ausgeführt werden soll.

_________________________
Professionelle Entwicklerkomponenten
www.tools4vb.de

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Probleme mit dem Form_Resize Event 
Autor: Souffleurlos
Datum: 19.09.19 20:22

Hallo VAT

Resize ist dafür nicht das richtige Event, da es von Windows in richtigen Fenstern eh nur einmal aufgerufen wird und blockiert, wenn man was macht, aber nicht den richtigen Return-Wert der
WindowsProzedur zurückliefert. Sind Windows Internas ...

Resize also nur 1 Mal verwenden.

Nimm statt dessen Paint. Darin lassen sich die Windowframes ebenso auslesen und besser setzen.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel