0

またバカな質問ですみません。もちろん、StackOverflowの人々に感謝しますが、最後の1つに固執しています。私が初心者だからという理由だけでこれをマークしないでください。

次のエラーが表示されます。

非静的フィールド、メソッド、またはプロパティ「ShovelShovel.WindowSize.Width.get」にはオブジェクト参照が必要です

非静的フィールド、メソッド、またはプロパティ「ShovelShovel.WindowSize.Height.get」にはオブジェクト参照が必要です

ここ:

設定.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-Im-having-trouble-with-my-code

上記が不十分な場合に備えて、添付ファイルに私のプロジェクトの完全なファイルがあります。

4

1 に答える 1

3

おそらくあなたは次のことを意味しました:

var windowSize = new WindowSize { Width = this.Width, Height = this.Height };

それ以外の:

var windowSize = new WindowSize { Width = WindowSize.Width, Height = WindowSize.Height };

書かれているように、幅と高さをWindowSizeクラスの静的プロパティにする必要がありますが、それはあなたが意図したものではないと思います。Width代わりに、フォーム インスタンスとHeightプロパティを使用する方が理にかなっています。

于 2012-12-11T04:38:43.590 に答える