Home All Groups Group Topic Archive Search About
Author
14 Mar 2006 6:26 PM
cc
Hi,

From a C# application am I writing some text in a Word.Table, in a Cell of
the Table to be more precise.

The cell has a certain width and any string written in the cell will cover
one or more lines in the cell depending on its length. In other words, it
will use wordwrapping

Now, I have to determine the amount of lines that the text will take when
written in the cell.
How can I do this ?

thnx
Chris

Author
14 Mar 2006 6:43 PM
dkode
where is your string coming from before you insert it into the table?
StringBuilder? String array?

need some more info/code snippet to help
Author
14 Mar 2006 7:04 PM
cc
Hi,

it is just a string.

some code :
   m_table1.Cell(3, 4).Width = 200;
   m_table1.Cell(3, 4).Range.Text = "This is my test string. It's length can
vary..."

Show quoteHide quote
"dkode" <dko***@gmail.com> wrote in message
news:1142361785.950597.211720@j52g2000cwj.googlegroups.com...
> where is your string coming from before you insert it into the table?
> StringBuilder? String array?
>
> need some more info/code snippet to help
>
Author
14 Mar 2006 7:11 PM
dkode
you can do the following:

string myString = "This is my test string. It's length can vary.";

m_table1.Cell(3, 4).Width = 200;
if (myString.Length > 200) {
    // do processing or break apart the string into seperate lines I.E.
    string stringPart = myString.Substring(0, 200);
    string stringPart2 = myString.Substring(200, 200);
}

is this what your looking for?
Author
14 Mar 2006 8:41 PM
Ignacio Machin ( .NET/ C# MVP )
Hi,

I don't think this is what the OP wants, he wants to know how many rows were
used to display the string when it was drawn in the screen.

The cell width  is a pixel value, where the string length is in char, of
course one char does not fit in one pixel , so there is where the thing gets
nasty :)

OP:
See my other post to how to measure a string's representation in the screen


--
Ignacio Machin,
ignacio.machin AT dot.state.fl.us
Florida Department Of Transportation


Show quoteHide quote
"dkode" <dko***@gmail.com> wrote in message
news:1142363492.766309.37610@p10g2000cwp.googlegroups.com...
> you can do the following:
>
> string myString = "This is my test string. It's length can vary.";
>
> m_table1.Cell(3, 4).Width = 200;
> if (myString.Length > 200) {
>    // do processing or break apart the string into seperate lines I.E.
>    string stringPart = myString.Substring(0, 200);
>    string stringPart2 = myString.Substring(200, 200);
> }
>
> is this what your looking for?
>
Author
14 Mar 2006 6:45 PM
Ignacio Machin ( .NET/ C# MVP )
Hi,

You can use Graphics.MeasureString  but you need to know the font, another
problem is the wordwrapping , I bet you would have to build your own
wrapping algorith and see how many lines you get


--
Ignacio Machin,
ignacio.machin AT dot.state.fl.us
Florida Department Of Transportation

Show quoteHide quote
"cc" <cmr***@yahoo.com> wrote in message
news:44170a6e$0$15359$ba620e4c@news.skynet.be...
> Hi,
>
> From a C# application am I writing some text in a Word.Table, in a Cell of
> the Table to be more precise.
>
> The cell has a certain width and any string written in the cell will cover
> one or more lines in the cell depending on its length. In other words, it
> will use wordwrapping
>
> Now, I have to determine the amount of lines that the text will take when
> written in the cell.
> How can I do this ?
>
> thnx
> Chris
>
>
Author
14 Mar 2006 10:27 PM
dotNuttah
Show quote Hide quote
> "cc" <cmr***@yahoo.com> wrote in message
> news:44170a6e$0$15359$ba620e4c@news.skynet.be...
>> Hi,
>>
>> From a C# application am I writing some text in a Word.Table, in a
>> Cell of the Table to be more precise.
>>
>> The cell has a certain width and any string written in the cell will
>> cover one or more lines in the cell depending on its length. In
>> other words, it will use wordwrapping
>>
>> Now, I have to determine the amount of lines that the text will take
>> when written in the cell.
>> How can I do this ?
>>
>> thnx
>> Chris


Ignacio Machin ( .NET/ C# MVP ) wrote:
> Hi,
>
> You can use Graphics.MeasureString  but you need to know the font,
> another problem is the wordwrapping , I bet you would have to build
> your own wrapping algorith and see how many lines you get


Or give it the dimensions of the cell..

Overloads Public Function MeasureString( _
   ByVal text As String, _
   ByVal font As Font, _
   ByVal layoutArea As SizeF _
) As SizeF

Show quoteHide quote
:-)
Author
15 Mar 2006 12:49 AM
Dennis
There is an overloaded .measurestring method that allows passing it the width
and returning the size which will give you the height.  Divide this by the
font height and you will get the no. of lines.
--
Dennis in Houston


Show quoteHide quote
"dotNuttah" wrote:

> > "cc" <cmr***@yahoo.com> wrote in message
> > news:44170a6e$0$15359$ba620e4c@news.skynet.be...
> >> Hi,
> >>
> >> From a C# application am I writing some text in a Word.Table, in a
> >> Cell of the Table to be more precise.
> >>
> >> The cell has a certain width and any string written in the cell will
> >> cover one or more lines in the cell depending on its length. In
> >> other words, it will use wordwrapping
> >>
> >> Now, I have to determine the amount of lines that the text will take
> >> when written in the cell.
> >> How can I do this ?
> >>
> >> thnx
> >> Chris
>
>
> Ignacio Machin ( .NET/ C# MVP ) wrote:
> > Hi,
> >
> > You can use Graphics.MeasureString  but you need to know the font,
> > another problem is the wordwrapping , I bet you would have to build
> > your own wrapping algorith and see how many lines you get
>
>
> Or give it the dimensions of the cell..
>
> Overloads Public Function MeasureString( _
>    ByVal text As String, _
>    ByVal font As Font, _
>    ByVal layoutArea As SizeF _
> ) As SizeF
>
> :-)
>
>
>
Author
15 Mar 2006 1:24 AM
Bill Butler
"Dennis" <Den***@discussions.microsoft.com> wrote in message
news:F73678C0-C761-4569-A22D-8ADE6F786CF5@microsoft.com...
> There is an overloaded .measurestring method that allows passing it the width
> and returning the size which will give you the height.  Divide this by the
> font height and you will get the no. of lines.
> --

Sure, that will work.
As long as you don't mind silly little things like line breaks in mid character.

You really need a more involved algorithm to do proper word wrapping.

Bill
Author
15 Mar 2006 3:30 PM
Dennis
It's really a pretty simple algorthim to break the string into multiple
strings at the line breaks then use measurestring on each substring and add
in lines for each line break.  The user should be able to extrapolate from
measurestring method to this algorthim.

--
Dennis in Houston


Show quoteHide quote
"Bill Butler" wrote:

> "Dennis" <Den***@discussions.microsoft.com> wrote in message
> news:F73678C0-C761-4569-A22D-8ADE6F786CF5@microsoft.com...
> > There is an overloaded .measurestring method that allows passing it the width
> > and returning the size which will give you the height.  Divide this by the
> > font height and you will get the no. of lines.
> > --
>
> Sure, that will work.
> As long as you don't mind silly little things like line breaks in mid character.
>
> You really need a more involved algorithm to do proper word wrapping.
>
> Bill
>
>
>
Author
15 Mar 2006 8:33 AM
R. MacDonald
Hello, Chris,

Just a thought...

Do you really need to know the number of lines before you write to the
cell?  Or could you write to the cell, and then ask: "How many lines are
in the cell?"

Cheers,
Randy


cc wrote:
Show quoteHide quote
> Hi,
>
> From a C# application am I writing some text in a Word.Table, in a Cell of
> the Table to be more precise.
>
> The cell has a certain width and any string written in the cell will cover
> one or more lines in the cell depending on its length. In other words, it
> will use wordwrapping
>
> Now, I have to determine the amount of lines that the text will take when
> written in the cell.
> How can I do this ?
>
> thnx
> Chris
>
>
Author
15 Mar 2006 5:56 PM
cc
That might be an option...

But I'll probably have a look at the Graphics.Measuestring()

thanks to all of you !

Chris
Show quoteHide quote
"R. MacDonald" <sci***@NO-SP-AMcips.ca> wrote in message
news:4417d165$0$88191$dbd45001@news.wanadoo.nl...
> Hello, Chris,
>
> Just a thought...
>
> Do you really need to know the number of lines before you write to the
> cell?  Or could you write to the cell, and then ask: "How many lines are
> in the cell?"
>
> Cheers,
> Randy
>
>
> cc wrote:
> > Hi,
> >
> > From a C# application am I writing some text in a Word.Table, in a Cell
of
> > the Table to be more precise.
> >
> > The cell has a certain width and any string written in the cell will
cover
> > one or more lines in the cell depending on its length. In other words,
it
> > will use wordwrapping
> >
> > Now, I have to determine the amount of lines that the text will take
when
> > written in the cell.
> > How can I do this ?
> >
> > thnx
> > Chris
> >
> >