2013-04-05 2 views
0

У меня есть экземпляр объекта, который добавляется в список, а затем данные отображаются в форме окна C#. Можно ли изменить данные экземпляра через форму окна?Как изменить значение переменной в экземпляре в форме окна

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; 

, но думаю, что мне нужно что-то после этого.

+0

Что значит «Мне нужно что-то после этого»? Какова ваша проблема с тем, что у вас уже есть? – pascalhein

+0

Что такое человек? Я имею в виду, какой тип «человек»? Из того, что вы предоставили, это может быть «List » или если «Student» наследует от некоторого класса «Person», может быть, «List », но тогда 'person.Forename' и т. Д. Не имеет смысла. – Corak

+0

говорит, что не может отличить объект типа – ProgrammingRookie

ответ

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 
    } 
} 

Но я не совсем понимаю, почему вы ould хочет List<Person>, а не только один Person. Если у вас более одного Person в списке, откуда вы знаете, какой из них отображать и впоследствии менять?

PS: Я настоятельно рекомендую использовать DateTime как Тип вашего DateOfBirth. Вы будете в мире проблем, если вы когда-нибудь захотите на самом деле работать с датой рождения ...

+0

Спасибо, думаю, мне нужно внести некоторые изменения в мой код. Спасибо за помощь и советы – ProgrammingRookie

0

Tyr текст изменен событие или текст подтверждено событие например:

private void textBox1_TextChanged(object sender, EventArgs e) 
     { 
      person.Forename = textBox1.Text; 
     } 
Смежные вопросы