我很抱歉还有另一个愚蠢的问题。我几乎已经完成了我的设置保存winform,非常感谢StackOverflow的人当然,但我最后还是坚持了。请不要因为我是初学者而将此标记下来。
我收到以下错误:
非静态字段,方法或属性'ShovelShovel.WindowSize.Width.get'
需要对象引用非静态字段,方法或属性'ShovelShovel.WindowSize.Height.get'
需要对象引用
下面:
Settings.cs
public partial class Settings : Form
{
public Settings()
{
InitializeComponent();
}
public void button1_Click(object sender, EventArgs e)
{
var windowSize = new WindowSize { Width = WindowSize.Width, Height = WindowSize.Height };
WindowSizeStorage.WriteSettings(windowSize);
Application.Exit();
}
}
其中:
WindowSize.cs
public class WindowSize
{
public int Width { get; set; }
public int Height { get; set; }
}
public static class WindowSizeStorage
{
public static string savePath = "WindowSize.dat";
public static WindowSize ReadSettings()
{
var result = new WindowSize();
using (FileStream fileStream = new FileStream(savePath, FileMode.Open))
{
using (BinaryReader binaryReader = new BinaryReader(fileStream))
{
result.Width = binaryReader.ReadInt32();
result.Height = binaryReader.ReadInt32();
}
}
return result;
}
public static void WriteSettings(WindowSize toSave)
{
using (BinaryWriter binaryWriter = new BinaryWriter(File.Open(savePath, FileMode.Create)))
{
binaryWriter.Write(toSave.Width);
binaryWriter.Write(toSave.Height);
}
}
}
http://forums.codeguru.com/showthread.php?530631-I-m-having-trouble-with-my-code
如果上述情况不足,您可以在附件中找到我项目的完整文件。
答案 0 :(得分:3)
也许你的意思是:
var windowSize = new WindowSize { Width = this.Width, Height = this.Height };
而不是:
var windowSize = new WindowSize { Width = WindowSize.Width, Height = WindowSize.Height };
如上所述,它需要Width和Height成为WindowSize
类的静态属性,但我不认为这是你的意图。相反,使用表单实例Width
和Height
属性更有意义。