devi fare delle proporzioni..fai un po' di prove e vedi qual'è la proporzione giusta
devi fare delle proporzioni..fai un po' di prove e vedi qual'è la proporzione giusta
intendi che devo provare a vedere quanto occupa una stringa in rapporto ai pixel? non c'è un modo piu affidabile?
prova così (usando una textbox con proprietà readonly=true)
questo nel load (hai già dichiarato una variabile w pubblica)
questo nel form_resize eventw = me.width
With TextBox1
.autosize = True
End With
Dim w2 as integer = w - me.width
textbox1.maxwidth = w2
textbox1.width = w2
trovato...basta mettere questo:
Dim stringSize As New SizeF()
stringSize = g.MeasureString(Label1.Text, Me.Font, Label1.Size.Width)
Dim tmp As Integer = stringSize.Height
nell'evento paint...c'è per caso un metodo per approssimare per eccesso?
sempre per eccesso? potresti provare così: (txtnumero è una textbox dove il numero decimale viene inserito e dove esce il numero intero)
Dim n As String = txtnumero.Text
Dim numero = Nothing
If n.Contains(",") Then
n = n.Split(",")(0)
If Integer.TryParse(n, numero) Then
numero += 1
Else
numero = 0
End If
ElseIf n.Contains(".") Then
n = n.Split(".")(0)
If Integer.TryParse(n, numero) Then
numero += 1
Else
numero = 0
End If
Else
If Integer.TryParse(n, numero) Then
Else
numero = 0
End If
End If
txtnumero.Text = numero
ho fatto cosi:
Dim stringSize As New SizeF()
Dim g As Graphics = e.Graphics
stringSize = g.MeasureString(Label1.Text, Me.Font, Label1.Size.Width)
Dim tmp As Integer = stringSize.Height
If Not Convert.ToDouble(tmp) = stringSize.Height Then
tmp += 1
End If
Label1.Size = New Size(Label1.Size.Width, tmp)
quale pensi sia meglio?
perdonami, ma height è già un integer, quindi non lo puoi arrotondare, al massimo gli puoi aggiungere sempre e comunque uno per sicurezza
Lo so...difatti lo assegno a un'integer (oppure lo converto) a un'integer per farlo diventare intero...se poi la parte intera è diversa dal numero lo incremento..altrimenti lo lascio stare...
si, ma, se vedi, stringsize.height è già intero, non è un double, e non puoi arrotondare un intero
no mi risultava 18,832...non è intero... cmq ora ho risolto grazie![]()