У меня возникла та же проблема, и у меня возникла идея, которая немного отличается.В моем сценарии я делаю программу с карточками для моих младших двоих детей, и я хотел иметь возможность перенести ответ, предоставленный в родительскую форму (новую дочернюю форму для каждого нового вопроса с карточкой, чтобы родительская форма могла обновлять, сколькоосталось, сколько правильно, сколько неверно и т. д.) без необходимости добавлять значения в базу данных.Кажется, излишним для чего-то, что должно быть просто.То, что я сделал, было создать класс с 3 каждого типа переменной.Я полагал, что для каждого задания достаточно трех типов.
Это пример моего нового класса:
namespace ClassNamespace
{
public class ValueHolder
{
public int intValue1 { get; set; }
public int intValue2 { get; set; }
public int intValue3 { get; set; }
public long longValue1 { get; set; }
.
.
.
}
}
Я создаю новый ValueHolder (ValueHolder vh;) из родительской формыи передать его в дочернюю форму.В дочерней форме я создаю новый ValueHolder, а затем устанавливаю его равным объекту ValueHolder, отправленному в конструкторе класса дочерней формы.Теперь, когда нажата клавиша ввода (дан ответ), я могу установить vh.intValue1 равным this.answerBox.text; ... ну, мне нужно использовать int.tryparse ();Но ты получил идею.Затем мне нужно только сослаться на vh.intValue1 из родительской формы, чтобы получить введенное значение.
Родительская форма:
for (int i = 0; i < limit; i++)
{
ValueHolder vh = new ValueHolder();
ChildClass cc = new ChildClass(vh);
MessageBox.Show(vh.intValue1.ToString()); //to test that it works
}
и дочерняя форма:
ValueHolder vh;
public ChildClass (ValueHolder vhIncoming)
{
vh = vhIncoming;
}
private void answerBox_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
vh.intValue1 = 1234;
}
}
Это, кажется, самое простое решение для моего сценария.Я знаю, что этот вопрос старый, но хотел добавить эту опцию для всех, кто находится в аналогичной должности.Просто добавьте класс в свой проект, добавьте больше типов или больше типов в класс по мере необходимости, повторите промывку для будущих проектов.