|
dev
newsgroups
|
|||||||||||||||||||||||
|
|||||||||||||||||||||||
How do I do thisLooking 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. "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 This is done with a TypeConverter. There's a TypeConverterAttribute on> 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. 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 > 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 You may be right but there's a lot of overlap also. You therefore have a > certainly isn't related to .clr or .csharp, but most stuff in .csharp > isn't strictly related to C# either. 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 And so this proves my point. It's exactly what I needed - thanks very much > 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. (appreciated) 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. -- Show quote- 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. > > What you want to do is call the static GetConverter method on the Yes, as Barry Kelly also pointed out. Thanks to both of you (couldn't find > 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. this info after my own initial search) |
|||||||||||||||||||||||