Hello again, I am nearing completion on my current project but I am stumped on reading and writing to the registry. I am using Francesco Natali's ModifyRegistry.cs from Code Project to help me do this. I have been successful in reading and writing int and string values but I am stuck on Fonts and Colors.
My main question is: What would I convert Fonts and Colors to, to write them into the registry? I have converted a font into a string to get it to write into the registry but I cannot read it as a string because "cannot convert from 'string' to 'System.Drawing.Font'" but I can convert a font to a string?
Thanks in advance for any help.
|
Go4Expert Founder
|
![]() |
| 15May2007,08:37 | #2 |
|
Construct the font object with the font name as one of the parameter in constructor.
|
|
Go4Expert Member
|
|
| 16May2007,09:09 | #3 |
|
That doesn't make since. If it gets written as a string to the registry, why can't I read it as a string? Or at least convert the string back to a Font. I can't add the name of the font in there, it will be different every time the user picks a different one. I am wanting to make it so what ever the user picks remains the default on start up.
|
|
Go4Expert Founder
|
![]() |
| 16May2007,10:12 | #4 |
|
Basically if its written as string then its read as string. Now the string to font conversion is done through the constructor. You are not writing the Font object in registry or I am not sure if its possible as well.
|
|
Go4Expert Member
|
|
| 17May2007,04:54 | #5 |
|
Ok well, I ran my program and I selected a simple font for it, here is what was put into the registry. [Font: Name=Wingdings 2, Size=8.25, Units=3, GdiCharSet=2, GdiVerticalFont=False] I used
Code:
private Font preffont;
public void WriteFormattingPrefsToRegistry()
{
reg.Write("font", GetFont());
}
public void ReadFormattingPrefsFromRegistry()
{
reg.BaseRegistryKey = Registry.CurrentUser;
//This does not work with or without converting to a string.
SetFont(Convert.ToString(reg.Read("font")));
}
public Font GetFont()
{
return preffont;
}
publicvoid SetFont(Font v)
{
preffont = v;
}
Quote:
|
|
Go4Expert Founder
|
![]() |
| 17May2007,08:04 | #6 |
|
When you have written the font into the registry there will be an automatically string conversion but the vice versa is not true. Something like you always have a tostring but the reverse is not true for any object
|
|
Go4Expert Member
|
|
| 17May2007,08:28 | #7 |
|
Alright thanks, I'll be sure to post a solution if I find out how to solve this problem.
|
