Solved

Height of text

Posted on 2002-06-27
8
844 Views
Last Modified: 2006-11-17
Since microsoft desided to remove the autosize property for the labels in vb.net (its still there but only on a horizontal sence of the word), I am trying to determin the required height of a text (with the current font, fontsize etc). I have tried everything (.PreferredHeight and so on) but have faild ,looking for ideas. What I am trying to do is to create a label that will autosize vertical (down) when a text is added to it that cannot fit into its widht (wordwrap).

PLZ PLZ PLZ ideas anything that might pop into your heads, give it to me... I will post the solution if I solve it my self.

Sincerly
Claes
0
Comment
Question by:clylv
  • 4
  • 4
8 Comments
 
LVL 22

Expert Comment

by:CJ_S
ID: 7113052
So you want the text to always be on one line?

CJ
0
 
LVL 22

Expert Comment

by:CJ_S
ID: 7113084
Anyway, no matter how you can retrieve the height of the font by using code similar to the following:

System.Drawing.Font x = new Font("Verdana", 3);
x.GetHeight()

You can use these functions to determine how big your font needs to be.

CJ
0
 

Author Comment

by:clylv
ID: 7113154
Thanx CJ S,
That goes a way but what I need to know is how many lines in a multiline label I need to make room for.

EX

Label1.wordwrap = true
Label1.width = 50
label1.Text = "lllllllllllllllllllllllllllllllllllllllllll"

Now the text will require more space thatn the 50 pixels that has been assigned to it.
The text will be displayd something like this:
lllllllllll and the rest will be hidden.
What I want to be able to do is to calculate the number of needed rows so that I can adjust the height of the label to accomodate the whole text like this:
lllllllllll
lllllllllll
lllllllllll
lllllllllll
lllllll
The autosize property will not let me do this, so I tried this formula

Dim Label2 as Label
Label2.AutoSize = true
Label2.Text = Label1.Text
dim rows as integer
rows = label1.width / label2.width
dim iHeight as integer
iHeight = rows * font.GetHeight
Label1.Height  = iHeight

And it works sortof,

The problem is that like most wordprocessors the Label changes the spacings in a text when wordwrap adds a new line. And then sometimes you end up with a few char or a word below the Label.... irritating lik hel.... and I can't find a way around it.

/claes
0
 
LVL 22

Accepted Solution

by:
CJ_S earned 150 total points
ID: 7113182
Just add the linespacing

iHeight = rows * (Font.GetHeight + Font.FontFamily.GetLineSpacing(FontStyle.Regular))
0
Highfive Gives IT Their Time Back

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

 

Author Comment

by:clylv
ID: 7113207
AHHHHHHHHHH!! CJ S YOU HAVE NO IDEA HOW HAPPY YOU JUST MADE ME!!!

Been trying to solve this for 3 (three!) weeks know and you just naild it for me my friend! works like a charm, a grade A and all the points are yours!

Once again THANKYOU!!!

/Claes
0
 
LVL 22

Expert Comment

by:CJ_S
ID: 7113214
Glad to help ;-)

CJ
0
 

Author Comment

by:clylv
ID: 7113557
mayby I was a bit premature there, or mayby im just stupid, it looked as if it worked like a charm and mayby it will but the linespaceing returns a value of 2355, is this in some strange unit do you know?
It looked like it worked fine but in reality the label is 10 as high as the form?

/Claes
0
 

Author Comment

by:clylv
ID: 7113572
mayby I was a bit premature there, or mayby im just stupid, it looked as if it worked like a charm and mayby it will but the linespaceing returns a value of 2355, is this in some strange unit do you know?
It looked like it worked fine but in reality the label is 10 as high as the form?

/Claes
0

Featured Post

How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

Join & Write a Comment

Normally the drop down box control found in the .Net framework tools is able to select just one data and value at a time, which is displayed on the text area.   But what if you want to have multiple values to be selected in the drop down box? As …
Real-time is more about the business, not the technology. In day-to-day life, to make real-time decisions like buying or investing, business needs the latest information(e.g. Gold Rate/Stock Rate). Unlike traditional days, you need not wait for a fe…
When you create an app prototype with Adobe XD, you can insert system screens -- sharing or Control Center, for example -- with just a few clicks. This video shows you how. You can take the full course on Experts Exchange at http://bit.ly/XDcourse.
This video explains how to create simple products associated to Magento configurable product and offers fast way of their generation with Store Manager for Magento tool.

760 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

23 Experts available now in Live!

Get 1:1 Help Now