У меня есть следующий фрагмент кода, который позволяет мне вытаскивать свойства из объекта в моем списке и назначать их переменным в других формах. Однако мне нужно убрать данные из моих переменных в другой форме и использовать их для установки свойств данного объекта.Домашнее задание как передать значения из одной формы в объект в списке в другой форме
Моя учетная запись класса используется для заполнения моих учетных записей. В моей следующей форме AccountMenu у меня есть класс Variables1, который содержит доступные переменные, которые используются во всех остальных формах, чтобы отслеживать баланс проверки и сохранять баланс. Когда вы выходите из учетной записи AccountMenu, я хочу иметь возможность передавать значения из Variables1 в учетную запись, которая изначально использовалась.
Я знаю, как передавать переменные из одной формы в другую, но я не уверен, как автоматически обновлять форму без кнопки в исходной форме. Таким образом, решение, которое я вижу, состоит в том, что у меня есть кнопка в моей форме AccountMenu, которая «регистрирует» пользователя через this.close(); Кроме того, я догадался, что под этой кнопкой мне нужно иметь некоторый код, который присваивает переменные как свойства объекту. Я просто не знаю, как я могу получить доступ к заданным свойствам объекта, поскольку он динамически вызывается с помощью кода ниже.
Может кто-нибудь помочь мне выяснить, что мне нужно сделать? Ниже приведена часть соответствующего кода, чтобы вы могли видеть, как я настроил настройки. Я просто не знаю, как получить доступ к «совпадениям» из другой формы, чтобы обновить определенные свойства объекта. Спасибо, всем, кто может помочь!
//variable that will be used to check textbox1.Text
string stringToCheck;
//array of class Account
List<Account> accounts = new List<Account>();
public MainMenu()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
//set value to user's input
stringToCheck = textBox1.Text;
//set a var that only returns a value if the .Name already exists
var matches = accounts.FirstOrDefault(p => p.Name == stringToCheck);
//check through each element of the array
if (matches == null)
{
accounts.Add(new Account(stringToCheck));
textBox1.Text = "";
label3.Visible = true;
}
else if (matches != null)
{
//set variables in another form. not sure if these are working
Variables1.selectedAccount = matches.Name;
//is this calling the CheckBalance of the instance?
Variables1.selectedCheckBalance = matches.CheckBalance;
//same thing?
Variables1.selectedSaveBalance = matches.SaveBalance;
//switch to form
AccountMenu acctMenu = new AccountMenu();
this.Hide();
acctMenu.Show();
}
}
Спасибо за ответ. Кажется, что все имеет смысл и кажется, что оно должно работать. Однако я не могу установить код для обновления текущего объекта. Я пытаюсь использовать следующий код, но часть «matches» не будет заполняться из одного события button_Click в другое: matches.CheckBalance = Variables1.selectedCheckBalance; matches.SaveBalance = Variables1.selectedSaveBalance; –
На самом деле, я получил его работу. Мне нужно было использовать другой экземпляр проверки списка учетных записей, но на этот раз для Variables1.selectedAccount, например: var updateAccount = Account.accounts.FirstOrDefault (p => p.Name == Variables1.selectedAccount); После этого мне просто нужно было изменить match.CheckBalance для updateAccount.CheckBalance и сделать то же самое для SaveBalance. Большое спасибо за помощь! –