Multline TextBox question

G

garyusenet

I have a multiline textbox.

The size of the text box should be 75 characters wide, and 5 lines in
height like this: -

<---75 characters-->
<---75 characters-->
<---75 characters-->
<---75 characters-->
<---75 characters-->

I have used maxlength to limit the characters to 375 (75 X 5).

My question is how to I specify the layout of the textbox to be 75
characters wide and 5 lines in height. The only size property i can see
takes a value in pixels, which isn't suitable here.

Thankyou,

Gary.
 
M

marss

My question is how to I specify the layout of the textbox to be 75
characters wide and 5 lines in height. The only size property i can see
takes a value in pixels, which isn't suitable here.

There are Columns and Rows properties.
 
G

garyusenet

There are? They don't display in the property pane, and when i try to
access them programmatically using textbox.Columns or textbox.Rows they
aren't accessible either?

Can you tell me how I access these properties?

Thanks,

Gary.
 
M

marss

There are? They don't display in the property pane, and when i try to
access them programmatically using textbox.Columns or textbox.Rows they
aren't accessible either?

Can you tell me how I access these properties?

Thanks,

Gary.

If you writing Web Application :
http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.textbox.columns.aspx
http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.textbox.rows.aspx

But now I guess you write Win Application. :(
 
M

marss

yes writing windows form application =(

Sorry for silly question.
Why don't you want to enter text in textbox in design time: 5 rows,
every with 75 characters, resize textbox to fit all characters and
remove entered text?
 
G

garyusenet

Thankyou marss that's a good idea. I have now populated the textbox
with sample text at runtime. How do i tell the textbox to resize to fit
this text, i can't find a resize method or anything simmilar, thanks...
Gary.
 
D

Dave Sexton

Hi Gary,

You can get an approximation using the Graphics.MeasureString method (GDI+)
or TextRenderer.MeasureText method (GDI; 2.0 framework only). Simply call
CreateGraphics on the TextBox and pass the Graphics object to one of the
Measure* methods along with the specific text and Font.

If the Font isn't fixed-width then you should probably specify 375 upper
case "M" characters as the text to ensure maximum coverage for the
calculation. Otherwise, 375 of any printable character will do for a
fixed-width font.

Note: Don't be tempted to draw to the Graphics object retrieved from the
CreateGraphics method and don't forget to dispose of it after the text is
measured.
 
G

garyusenet

Thankyou Dave. I will look at that. But I can't help thinking i've
asked the wrong question.
Perhaps I'll try again maybe someone can offer a solution.

My textbox takes text data from the user and then copies this to the
clipboard. I then switch to another application and paste this data
from the clipboard into the other application. The application
receiving the text demands that the text cover no more than 5 lines,
each line consisting of no more than 75 characters.

The reason I was trying to resize the textbox was so that it looked the
same as it would look when it is pasted into this second programme.

But I realise now I need some way of enforcing that each line contains
only 75 characters, because even if I managed to size the textbox
exactly to 5x75 character lines, there is nothing stopping the user
from actually entering 1x375 line into this textbox. If i can find a
way of enoforcing that each line in the textbox has a maximum size of
75 characters I think this in itself will take care of the text being
displayed as it will look in the target application once it is pasted.

Any idea how I do this with the standard multiline textbox?

I was considering just creating 5 seperate text box, and playing around
with their events to try to make them act as one text box, do you think
this will be a better approach?

Thankyou Experts,

Gary.
 
D

Dave Sexton

Hi Gary,

That's a very difficult request. I tried to create a simple Multiline
solution or multiple TextBox solution but there are just too many things to
consider.

In either case if you want to try it by handling the KeyDown event, for
instance, then you'll have to consider placement of the text cursor, length
of the selection, keys such as Delete, Backspace, Enter, the control keys
and undo, cut, copy and paste (Ctrl+Z, Ctrl+X, Ctrl+C and Ctrl+V,
respectively). Anything less and end-users might be surprised by the
behavior of your TextBox, considering it buggy.
 
G

garyusenet

Ah i see what you mean. OK well I'll move on from that for now. The
project is a hobby project of mine, so I can do with the box being a
little buggy for now I guess! So will go with the five indiviudal text
box controls. And maybe in a year or so when i'm more advanced I can
write my own custom control for it!

Thanks again for your kind time and thought i'd be lost without it!

Gary-
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top