0

オンラインのチュートリアルに従って、クラスでGetとSetを使用する基本的なプログラムを作成した後。「保存されたクラス」に保存されるようにテキストボックスから値を設定し、テキストボックスのデータをクリアしてから、データを再度「取得」してテキストボックスに表示する方法を理解しようとしています。それが理にかなっているなら、私の最初に入力したデータが適切に設定されていること。
つまり、私のフォームには3つのボタン、設定、クリア、取得、および1つのテキストボックスがあります。これが私の「保存されたクラス」のコードです。

    namespace Pracitse{
class Stored
{        

    private string Colour;
    private string getColour(string colour)
    {
        string displayColour;
        displayColour = colour;
        return displayColour;
    }


    public string MyProperty 
    {
        get { return Colour; }
        set{ Colour = getColour (value) ;}
    }   
    }

そして、これは私のフォームからのコードです:

    private void setBtn_Click(object sender, EventArgs e){          
        Stored Details = new Stored();
        string setcolour;
        setcolour = Details.MyProperty;
        Details.MyProperty = colourBx.Text;             

    }

    private void getBtn_Click(object sender, EventArgs e)
    {
        Stored Details = new Stored();             
        string Displaycolour;
        Displaycolour = Details.MyProperty;
        colourBx.Text = (Displaycolour);                     
    }

    private void clrBtn_Click(object sender, EventArgs e)
    {            
        colourBx.Clear();            
    }       
}}

私はグーグルを使用して他のタットをフォローしようとしましたが、最初に入力されたデータを保存する方法がわからないようです。何か助けはありますか?ありがとう。

4

2 に答える 2

8

を実行するたびにStored details = new Stored();新しい異なる Storedオブジェクトが作成されます。

共有する必要があります。

Stored details = new Stored();

private void setBtn_Click(object sender, EventArgs e){          
    details.MyProperty = colourBx.Text;             
}

private void getBtn_Click(object sender, EventArgs e)
{
    string Displaycolour;
    Displaycolour = details.MyProperty;
    colourBx.Text = Displaycolour;
}

private void clrBtn_Click(object sender, EventArgs e)
{            
    colourBx.Clear();            
}    
于 2012-10-10T18:46:32.953 に答える
1

あなたの問題はStored、クリック ハンドラーでタイプの新しい完全に別のオブジェクトを作成 (インスタンス化) していることです。Stored クラスのMyPropertyはインスタンス プロパティであり、オブジェクトの特定のインスタンスにのみ属します。

フォームに 1 つの Stored オブジェクトをクラス メンバーとして作成し、新しいオブジェクトを作成するのではなく、両方のハンドラーでそれを参照する必要があります。

つまり、送信ボタンを押す 2 分前にオデッドが言った言葉です。

于 2012-10-10T18:49:56.957 に答える