Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从C#中的注册表项设置窗口大小?_C#_Registry - Fatal编程技术网

如何从C#中的注册表项设置窗口大小?

如何从C#中的注册表项设置窗口大小?,c#,registry,C#,Registry,我正在尝试这样做,当我的C#应用程序关闭时,它会将窗口的大小和位置保存到注册表中,然后在启动时将窗口更改为这些大小。当我以这种方式尝试时,我遇到了一个错误: Microsoft.Win32.RegistryKey key; key = Microsoft.Win32.Registry.CurrentUser.CreateSubKey("Software\\Pandora"); //key.SetValue("Size", this.Size);

我正在尝试这样做,当我的C#应用程序关闭时,它会将窗口的大小和位置保存到注册表中,然后在启动时将窗口更改为这些大小。当我以这种方式尝试时,我遇到了一个错误:

        Microsoft.Win32.RegistryKey key;
        key = Microsoft.Win32.Registry.CurrentUser.CreateSubKey("Software\\Pandora");
        //key.SetValue("Size", this.Size);
        //key.SetValue("Location", this.Location);
        //key.SetValue("Browser", Browser.Location);
        this.Size = new System.Drawing.Size(key.GetValue("Size").ToString());
        key.Close();
我需要做什么才能将this.size设置为“size”值

==编辑==

我得到了错误:

错误1最佳重载方法 相配 '系统.绘图.大小.大小(int,int)' 有一些是无效的 参数C:\Users\Sean\Documents\Visual 演播室 2010\Projects\Pandora\Pandora\Form1.cs 23 25 Pandora

错误2参数1:无法转换 从“字符串”到 “int”C:\Users\Sean\Documents\Visual 演播室 2010\Projects\Pandora\Pandora\Form1.cs 23 49 Pandora

错误3参数2:无法转换 从…起 “Microsoft.Win32.RegistryValueKind”到 “int”C:\Users\Sean\Documents\Visual 演播室 2010\Projects\Pandora\Pandora\Form1.cs 23 82 Pandora

如果我将其更改为:

this.Size = new System.Drawing.Size(key.GetValue("Size").ToString());
结果是

错误1最佳重载方法 相配 '系统.图纸.尺寸.尺寸(系统.图纸.点)' 有一些是无效的 参数C:\Users\Sean\Documents\Visual 演播室 2010\Projects\Pandora\Pandora\Form1.cs 23 25 Pandora

错误2参数1:无法转换 从“字符串”到 'System.Drawing.Point'C:\Users\Sean\Documents\Visual 演播室 2010\Projects\Pandora\Pandora\Form1.cs 23 49 Pandora

给我

错误1最佳重载方法 相配 '系统.图纸.尺寸.尺寸(系统.图纸.点)' 有一些是无效的 参数C:\Users\Sean\Documents\Visual 演播室 2010\Projects\Pandora\Pandora\Form1.cs 23 25 Pandora

错误2参数1:无法转换 从“对象”到 'System.Drawing.Point'C:\Users\Sean\Documents\Visual 演播室 2010\Projects\Pandora\Pandora\Form1.cs 23 49 Pandora


我同意使用注册表不是最好的主意。 不过,您可能想考虑将宽度和高度分开,而不是试图存储一个“大小”< /p>。
另外,您具体遇到了什么错误?

我同意使用注册表不是最好的主意。 不过,您可能想考虑将宽度和高度分开,而不是试图存储一个“大小”< /p>。
另外,您具体得到了什么错误?

您的错误是因为无法使用字符串创建新的“大小”。大小是一个复杂的数据类型,需要初始化两个数字(宽度和高度)。您正试图用单个字符串初始化它

例如:如果注册表中的值为“30500”,那么这样说是否有意义:

this.Size = 3500;
无法确定窗户的尺寸。你需要分开宽度和高度,并将它们存储在两个分开的键中(参见我之前的文章)

检索值时,需要解析它们,因为“Size”需要两个int而不是两个字符串。尝试以下方法:

string sHeight = key.GetValue("SizeHeight");
string sWidth  = key.GetValue("SizeWidth");
int iHeight    = Int32.Parse(sHeight);
int iWidth     = Int32.Parse(sWidth);
Size size      = new Size(iWidth, iHeight);
this.Size      = size;

您可能需要对代码进行一些调整,但这应该是一个很好的起点。

您的错误是因为无法使用字符串创建新的“大小”。大小是一个复杂的数据类型,需要初始化两个数字(宽度和高度)。您正试图用单个字符串初始化它

例如:如果注册表中的值为“30500”,那么这样说是否有意义:

this.Size = 3500;
无法确定窗户的尺寸。你需要分开宽度和高度,并将它们存储在两个分开的键中(参见我之前的文章)

检索值时,需要解析它们,因为“Size”需要两个int而不是两个字符串。尝试以下方法:

string sHeight = key.GetValue("SizeHeight");
string sWidth  = key.GetValue("SizeWidth");
int iHeight    = Int32.Parse(sHeight);
int iWidth     = Int32.Parse(sWidth);
Size size      = new Size(iWidth, iHeight);
this.Size      = size;
您可能需要对代码进行一些调整,但这应该是一个很好的起点。

:

:


你为什么要使用注册表。NET有一种用于应用程序设置(XML文件)的机制:(MSDN——还提到了注册表设置)。还有:你为什么要使用注册表。NET有一种用于应用程序设置(XML文件)的机制:(MSDN——还提到了注册表设置)。另外:Damián,如果将来链接中断,您可能需要在答案中包含使用说明和一些示例实现代码。Damián,如果将来链接中断,您可能需要在答案中包含使用说明和一些示例实现代码。
string sHeight = key.GetValue("SizeHeight");
string sWidth  = key.GetValue("SizeWidth");
int iHeight    = Int32.Parse(sHeight);
int iWidth     = Int32.Parse(sWidth);
Size size      = new Size(iWidth, iHeight);
this.Size      = size;
static Size.Parse(string );