Newsgroup: it.comp.lang.visual-basic
Titolo: [VB.NET] Resize dei form a Rampazzo!

mi capita su alcuni form, che si resizino all'avvio del
programma allungandosi di 3 o 4 cm in height e di
circa 1 cm in width...
nel form non c'è codice di resizing, e la dimensione
cambia appena viene visualizzato il form (ho fatto
un watch sul frmOpen.definstance.width)
se qualcuno sa come risolvere questo problema,
gli vorrò molto bene... :)
--
Licantrop0 / HackZ XtremE Crew since 2001
Mail: 
Lican...@hackzxtreme.cjb.net
Main Site: 
www.hackzxtreme.cjb.net

un watch sul frmOpen.definstance.width)
Sara'... pero' rimango piuttosto perplesso :-(
Con i form non ho ancora fatto molto, a parte picchiarmi
col multithreading, pero' questo problema non l' ho
ancora incontrato (finche' dura :-)
Hai provato ad aprire singolamente, in un progetto a parte,
almeno uno dei form che ti fa questo scherzetto?
Se il fenomeno si riproducesse anche cosi', sarebbe interessante
se tu postassi il codice del miniprogetto.
-- 
ciao, hal

 se tu postassi il codice del miniprogetto.
riprovato adesso.
un mdi, un form1 child. nessun settaggio speciale per tutti e due.
sul form1, lasciato delle dimensioni in cui lo propone vb, ho messo un text1
che lo copre quasi tutto, giusto per vedere a colpo d'occhio.
codice dell'mdi:
---
Option Explicit
Private Sub MDIForm_DblClick()
    Form1.Show
End Sub
---
con mdi lasciato a dimensione vb (piccoletto) -> form1 appare minuscolo,
text1 e' coperto al 60% e appare del tutto solo ridimensionando.
mdi ingrandito a design -> form1 appare molto piu' largo, a destra di text1
c'e' una larga banda grigia vuota.
aggiunto codice per form1:
---
Option Explicit
Private Sub Form_Load()
    With MDIForm1
        Width = .Width \ 2: Height = .Height \ 2
    End With
End Sub
---
tutto regolare, text1 e' coperto perche' a design era piu' grande.
completando il codice
---
    With MDIForm1
        Width = .Width \ 2: Height = .Height \ 2
        Text1.Width = ScaleWidth: Text1.Height = ScaleHeight
        Text1.Move 0, 0
    End With
---
tutto ok
ciao, j.

lo stesso i bordi a rampazzo! :)
Ho provato il codice che gentilmente hai postato ed ho appurato che
il problema non e' a runtime, ma a design time.
Mi spiego meglio (o almeno ci provo ;-):
Ho sostituito la riga:
Me.ClientSize = New System.Drawing.Size(194, 64)
con la riga:
Me.SetBounds(0, 0, 200, 80)
ed ho aggiunto al coomand button di chiusura, prima della Close():
MessageBox.Show(Me.Width.ToString() & " x " & Me.Height.ToString())
Le dimensioni dichiarate si sono rivelate proprio quelle che avevo impostato
con SetBounds.
Allora, ho attivato lo Spy ed ho accertato questo:
La classe di finestra del form a design time e a runtime e' la stessa
(diversamente dal vb6), per la precisione si chiama:
"WindowsForms10.Window.8.app1"
e le misure sono risultate:
200 x 80 quella dell' eseguibile (cioe' come impostato con SetBounds)
mentre quella a design time era un po' piu' grande: 202 x 82.
Diciamo, percio', che il designer e' un po' "infedele":
un motivo di piu' per scrivere tutto a mano, all' antica?
-- 
ciao, hal

 ciao, hal
ciao,


lo comunichi tu alla M$? :)
Io no, perche' non e' un bug:
prova a commentare la riga in cui imposti l' AutoScaleBaseSize ... ;-)
-- 
ciao, hal