Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [VB.NET] Ridimensionamento Form VS2013

    Buongiorno a tutti,
    mi scuso se pongo un problema abbastanza difficile da capire, ma siete la mia ultima risorsa, non ho proprio idea di come interpretare a monte l'errore.

    Ho un normalissimo mdi form che contiene una form "FormTest", tutto come da valori di default per entrambi
    Autosize=false
    Autosizemode=GrowOnly
    AutoScaleMode=Font

    tutto funziona normalmente, la form sembra un po' ingrandirsi quando lancio il debug ma tutto si proporziona, ecco uno screenshot:

    Pre-Connection.jpg

    Devo eseguire una query alla pressione del button TEST, su un database Excel, utilizzando semplicemente uno strumento oledb come da codice, tutto funziona normalmente, fino al momento della connessione, esattamente fino a quando il codice arriva al primo dei due breakpoint:

    Codice.jpg

    Dopo ciò, attivata la connessione (al secondo breakpoint), avviene un ridimensionamento della form...
    PostConnection.jpg

    in realtà, confrontando la "size" nei due momenti, è la stessa, è come se la form avesse una risoluzione più definita, e quindi si "riducesse".

    la stringa di connessione non c'entra nulla, le allego solo per esplicitare:

    "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=C:\Users\Valerio\file.xlsx; Extended Properties=""Excel 12.0 Xml;HDR=YES"";"


    Ho l'impressione che VS quando compila, visualizzi le form a risoluzione inferiore (infatti con 1500px orizzonali nella proprietà size di una form, occupo tutto lo schermo da 1920), ma non mi sono mai curato del perché in quanto tutte le form funzionavano uguali, ciò che mi confonde adesso invece capire perché una connessione oledb mi ridisegni la form, creandomi questo enorme disagio!

    Ringrazio chiunque abbia un po' di pazienza per aiutarmi a comprendere il problema...grazie mille!

  2. #2
    A pensarci bene, più di un problema di ridimensionamento, sembra esserci proprio un problema di "risoluzione" della form.

  3. #3
    Quote Originariamente inviata da lunarossa82 Visualizza il messaggio
    ... infatti con 1500px orizzonali nella proprietà size di una form, occupo tutto lo schermo da 1920...!
    Le dimensioni impostate nelle proprietà sono una cosa, quelle REALI sono un altra. Un Form da 1500px orizzontali occupa l' intero schermo SOLO se la risoluzione orizzontale dello schermo è 1500 px.

    Puoi verificare le dimensioni REALI mettendo una o piu:

    Debug.Print("Dimensione del Form: " & Me.Size.ToString)

    all' interno del codice.

    AL LIMITE, come ultima istanza, nelle proprietà imposta le dimensioni massime e minime del Form sulla stessa dimensione e poi voglio vedere se cambia dimensione.

  4. #4
    E' proprio qui il problema, le dimensioni le ho già verificate ed ho usato già max e min size per la form, le dimensioni sono le stesse in tutte le fasi, ciò che cambia è la risoluzione.
    La form viene visualizzata sì a quelle dimensioni, sempre, ma prima ha inizialmente una risoluzione inferiore, dopo la connessione col database si ridisegna (non so perché, il codice è quello che vedete, è solo una connect del framework), e lì aggiorna la risoluzione.

    La dimensione è la stessa, ma a quel punto prende una risoluzione più alta, e la form si "stringe".

  5. #5
    Hai provato ad inserire dei :

    Debug.Print(My.Computer.Screen.Bounds.ToString)

    per verificare che la risoluzione dello schermo non cambi (a parte che non si capisce cosa dovrebbe cambiarla)?

  6. #6
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Una cosa è certa: il form non cambia dimensione da solo.
    Se avviene qualche cambiamento è perché c'è qualche 'cosa' che lo modifica.


    tutto funziona normalmente, la form sembra un po' ingrandirsi quando lancio il debug ma tutto si proporziona
    Se davvero avviene questo, il funzionamento non è per niente normale.

  7. #7
    Quote Originariamente inviata da eziogsv Visualizza il messaggio
    Hai provato ad inserire dei :

    Debug.Print(My.Computer.Screen.Bounds.ToString)

    per verificare che la risoluzione dello schermo non cambi (a parte che non si capisce cosa dovrebbe cambiarla)?
    Qualcosa emerge...lancio la form con questi parametri:

    Parametri.jpg

    Senza attivare la connessione Oledb, una form semplice, parte così, chiarisco che il monitor è CERTAMENTE 1920 x 1080, la form pur a 1552 px, va a schermo intero, viene ingrandita e leggermente sgranata...ma non ho scritto una riga di codice per avere tale esito:

    FormNoConnection.jpg

    Lanciando la connect all'avvio della form mdi container, ho questo esito invece:

    Formconnection.jpg

    Qui la form non è sgranata poiché è stata disegnata correttamente anche se è impostata "Maximized", cosa che ovviamente non è.

    Premendo il pulsante "Massimizza" che contiene semplicemente la chiamata FormWindowState.Maximizee, la form si massimizza e le risoluzioni sono finalmente esatte...se però provo a spostare la form...torna a rimpicciolirsi come nell'ultima immagine!

    Sinceramente non capisco...posso dedurre che la connessione al database forzi in qualche modo la form a ridisegnarsi, ciò che non capisco, è perché durante il design, veda una risoluzione errata del monitor, e poi addirittura si sgrani per andare a schermo intero, non sapevo neanche esistesse questa possibilità!

    Tutte le prove sopra, sono realizzate con monitor a 1920x1080, non ci sono ridimensionamenti del monitor, e le uniche righe di codice sono quelle già inserite nel primo post.....la release è stata testata con i medesimi esiti anche su una macchina virtuale con windows 7...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.