Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Rdimensionare un area di testo
martedì 13 novembre 2007 - 09.29
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
forumQuarz
Profilo
| Junior Member
82
messaggi | Data Invio:
mar 13 nov 2007 - 09:29
Salve,
come si fa per ridimensionare un'area di testo in base alla lunghezza del testo??
Vorrei creare un'area che in base al testo si allunghi dinamicamente....
Grazie
alextyx
Profilo
| Expert
668
messaggi | Data Invio:
mar 13 nov 2007 - 10:09
Credo possano esserti utili questi link, uno è di una discussione freschissima in cui si discute diffusamente di problemi riguardanti la misurazione delle stringhe:
http://forum.masterdrive.it/articoli-visual-basic-net-36/misurare-lampiezza-width-stringa-19105/
http://forum.masterdrive.it/visual-basic-net-18/sottrarre-coordinate-20138/
buona lettura
forumQuarz
Profilo
| Junior Member
82
messaggi | Data Invio:
mar 13 nov 2007 - 10:35
Grazie!!!
Ci do subito un occhiata!!!
Caly82
Profilo
| Newbie
18
messaggi | Data Invio:
mar 13 nov 2007 - 14:02
>Salve,
>come si fa per ridimensionare un'area di testo in base alla lunghezza
>del testo??
>Vorrei creare un'area che in base al testo si allunghi dinamicamente....
>
>Grazie
Cosa intendi x area di testo? Una textbox?
E per ridimensionamento intendi la lunghezza e l'altezza del controllo?
Ciao!
forumQuarz
Profilo
| Junior Member
82
messaggi | Data Invio:
mar 13 nov 2007 - 17:15
Ho provato a fare come dici ma ho un valore più grande di quanto dovrebbe.
Ti posto il codice:
C#, .Net 2.0
(VB -> C#, C# -> VB)
http://www.carlosag.net/tools/codetranslator/default.aspx
//sono in una classe che estende un'area di testo(RichTextBox)
public void MisuraStringa() {
Bitmap b;
// Warning!!! Optional parameters not supported
Graphics g;
//il font l'ho preimpostato nella classe
Font f = new Font(this.Font.Name, this.Font.Size);
b = new Bitmap(1, 1, System.Drawing.Imaging.PixelFormat.Format32bppArgb);
g = Graphics.FromImage(b);
g.PageUnit = GraphicsUnit.Pixel;
float altramisura = g.MeasureString(this.Text, f).Width;
g.Dispose();
b.Dispose();
this.Width = (int)altramisura;
Il mio problema poi sarebbe quello di determinare l'altezza di un'area di testo per farci entrare il testo
alextyx
Profilo
| Expert
668
messaggi | Data Invio:
mer 14 nov 2007 - 08:19
Il primo link:
http://www.codeproject.com/vb/net/MeasureStrings.asp
riporta una procedura che restituisce larghezza e altezza.
forumQuarz
Profilo
| Junior Member
82
messaggi | Data Invio:
mer 14 nov 2007 - 09:28
ho fatto esattamente quello che c'era sul link ma l'area di testo è più lunga del testo.....
Forse:
(C#, .NET 2.0)
SizeF stringSize = g.MeasureString(this.Text, f);
int lunghezza = (int)stringSize.Width;
g.Dispose();
b.Dispose();
//dovrei forse effettuare una conversione in modo da associare all'area il giusto valore??
//lunghezza area di testo
this.Width = lunghezza;
alextyx
Profilo
| Expert
668
messaggi | Data Invio:
mer 14 nov 2007 - 12:06
Effettivamente, non è precisissima.
Ho fatto qualche prova, proprio con una richtextbox, mettendo del testo in una textbox e trasferendolo nella richtextbox, alla pressione di un pulsante. Ho anche inserito un fontdialog per fare prove con più font.
Questa soluzione sembra passabile, ma non sono ancora contento del tutto. Purtroppo, per adesso debbo accontentarmi, non ho modp di insisterci ancora!
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.RichTextBox1.BorderStyle = BorderStyle.None
Me.RichTextBox1.ScrollBars = RichTextBoxScrollBars.None
Me.FontDialog1.ShowDialog()
Me.RichTextBox1.Font = Me.FontDialog1.Font
Dim S As Size = TextRenderer.MeasureText(Me.TextBox1.Text, Me.RichTextBox1.Font)
Me.RichTextBox1.ClientSize = S
Me.RichTextBox1.Text = Me.TextBox1.Text
End Sub
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !