0

リストに追加されたオブジェクトのインスタンスがあり、データは c# フォームの Windows に表示されます。Windowsフォームからインスタンスのデータを変更することはできますか?

Person Joe = new Person("Sam", "Smith", "12.05.1992");
person.Add(Joe);

これは、人物リストに追加された人物のインスタンスです。

textBox1.Text = person.Forename;
textBox2.Text = person.Surname;
textBox4.Text = person.DateOfBirth;

これは、新しい名前を入力して変更されたデータを保存できるように、テキスト ボックスを使用してフォームに表示する方法です。

これが私の考えでした..

person.Forename = textBox1.Text;

しかし、その後に何かが必要だと思います。

4

2 に答える 2

1

さて、私はあなたのPersonクラスが次のように見えることを理解しています:

public class Person
{
    public Person(string forename, string surname, string dateOfBirth)
    {
        Forename = forename;
        Surname = surname;
        DateOfBirth = dateOfBirth;
    }
    public string Forename { get; set; }
    public string Surname { get; set; }
    public string DateOfBirth { get; set; }

    public override string ToString()
    {
        return Forename + ";" + Surname + ";" + DateOfBirth;
    }
}

したがって、フォームは次のようになります。

public partial class frmMain : Form
{
    private List<Person> Persons = new List<Person>();

    public frmMain()
    {
        InitializeComponent();

        Person Joe = new Person("Sam", "Smith", "12.05.1992");
        Persons.Add(Joe);

        textBox1.Text = Persons[0].Forename;
        textBox2.Text = Persons[0].Surname;
        textBox3.Text = Persons[0].DateOfBirth;
    }

    private void button1_Click(object sender, EventArgs e)
    {
        MessageBox.Show(Persons[0].ToString()); // before change
        Persons[0].Forename = textBox1.Text;
        MessageBox.Show(Persons[0].ToString()); // after change
    }
}

しかし、なぜList<Person>1 つだけでなくが必要なのか、よくわかりませんPerson。リストに複数ある場合Person、どれを表示して変更するかをどうやって知るのでしょうか?

PS:DateTimeのタイプとして使用することを強くお勧めしますDateOfBirth。実際に生年月日で仕事をしたいと思ったら、大変なことになるでしょう...

于 2013-04-05T10:40:49.267 に答える
0

Tyr テキスト変更イベントまたはテキスト検証イベント 例:

private void textBox1_TextChanged(object sender, EventArgs e)
        {
            person.Forename = textBox1.Text;
        }
于 2013-04-05T10:22:52.170 に答える