Looking at the ".resx" files produced by the Windows forms designer, I see
nodes like this:

<data name="MyRadioBtn.Size" type="System.Drawing.Size, System.Drawing">
<value>94, 21</value>

If you then read the "94, 21" back into your code as a string (exactly as
seen), how do you then deserialize it so it can be converted back into a
"System.Drawing.Size" object (i.e.,there's no "System.Drawing.Size"
constructor that takes this string as an argument but in any case, I assume
the correct way is to reverse the process that created this string in the
first place). Any help would be appreciated. Thanks.

Re: How do I do this by Barry

Barry
Fri Jun 30 21:38:13 CDT 2006

"Larry Smith" <no_spam@_nospam.com> wrote:

Did you include enough groups in the posting list? Gee :)

This is probably most appropriate for framework.windowsforms. It
certainly isn't related to .clr or .csharp, but most stuff in .csharp
isn't strictly related to C# either.

> Looking at the ".resx" files produced by the Windows forms designer, I see
> nodes like this:
>
> <data name="MyRadioBtn.Size" type="System.Drawing.Size, System.Drawing">
> <value>94, 21</value>
>
> If you then read the "94, 21" back into your code as a string (exactly as
> seen), how do you then deserialize it so it can be converted back into a
> "System.Drawing.Size" object (i.e.,there's no "System.Drawing.Size"
> constructor that takes this string as an argument but in any case, I assume
> the correct way is to reverse the process that created this string in the
> first place). Any help would be appreciated. Thanks.

This is done with a TypeConverter. There's a TypeConverterAttribute on
the Point class, and it points to a PointTypeConverter class in
System.Drawing. It's got a ConvertFrom method which does this
transformation. You're supposed to use TypeDescriptor to access the
converter, i.e. with TypeDescriptor.GetConverter(typeof(Point)) etc.

-- Barry

--
http://barrkel.blogspot.com/

Re: How do I do this by Nicholas

Nicholas
Fri Jun 30 23:37:16 CDT 2006

Larry,

What you want to do is call the static GetConverter method on the
TypeDescriptor class. Passing the type of System.Drawing.Size to it will
return a TypeConverter instance which you can use to call the
ConvertFromString method on. This will return a Size structure back to you
which you can then use.

Hope this helps.


--
- Nicholas Paldino [.NET/C# MVP]
- mvp@spam.guard.caspershouse.com

"Larry Smith" <no_spam@_nospam.com> wrote in message
news:%23W7x3uKnGHA.4856@TK2MSFTNGP05.phx.gbl...
> Looking at the ".resx" files produced by the Windows forms designer, I see
> nodes like this:
>
> <data name="MyRadioBtn.Size" type="System.Drawing.Size, System.Drawing">
> <value>94, 21</value>
>
> If you then read the "94, 21" back into your code as a string (exactly as
> seen), how do you then deserialize it so it can be converted back into a
> "System.Drawing.Size" object (i.e.,there's no "System.Drawing.Size"
> constructor that takes this string as an argument but in any case, I
> assume the correct way is to reverse the process that created this string
> in the first place). Any help would be appreciated. Thanks.
>



Re: How do I do this by Larry

Larry
Sat Jul 01 04:14:40 CDT 2006

> Did you include enough groups in the posting list? Gee :)

Only four groups - I'm sure you've seen plenty more :)

> This is probably most appropriate for framework.windowsforms. It
> certainly isn't related to .clr or .csharp, but most stuff in .csharp
> isn't strictly related to C# either.

You may be right but there's a lot of overlap also. You therefore have a
better chance of getting the right answer (though you don't want to violate
good NG etiquette by flooding too many groups)

> This is done with a TypeConverter. There's a TypeConverterAttribute on
> the Point class, and it points to a PointTypeConverter class in
> System.Drawing. It's got a ConvertFrom method which does this
> transformation. You're supposed to use TypeDescriptor to access the
> converter, i.e. with TypeDescriptor.GetConverter(typeof(Point)) etc.

And so this proves my point. It's exactly what I needed - thanks very much
(appreciated)



Re: How do I do this by Larry

Larry
Sat Jul 01 04:18:28 CDT 2006

> What you want to do is call the static GetConverter method on the
> TypeDescriptor class. Passing the type of System.Drawing.Size to it will
> return a TypeConverter instance which you can use to call the
> ConvertFromString method on. This will return a Size structure back to
> you which you can then use.

Yes, as Barry Kelly also pointed out. Thanks to both of you (couldn't find
this info after my own initial search)