Передать значение из InputForm в MainForm при загрузке - PullRequest
0 голосов
/ 04 апреля 2020

У меня есть MainForm и InputForm.
При загрузке MainForm я хочу открыть InputForm, и там пользователь может установить int piece и bool help, и я хочу передать его в MainForm для дальнейшего использования.

MainForm:

    public partial class MainForm : Form
    {

    public int piece;
    public bool help;

    public MainForm()
    {
        InitializeComponent();   
    }

    private void MainForm_Load(object sender, EventArgs e)
    {
        using (InputForm form = new InputForm())
        {
            if (form.ShowDialog() == DialogResult.OK)
            {
                help = form.help;
                piece = form.piece;
            }
            else
            {
                MessageBox.Show("Internal error");
            }
       }
   }

InputForm:

public partial class InputForm : Form
{
    public int piece;
    public bool help;

    public InputForm()
    {
        InitializeComponent();
    }

    private void InputForm_Load(object sender, EventArgs e)
    {
        for (int i = 1; i <= 132; i += 2)
        {
            comboBox.Items.Add($"{i} something");
        }
    }

    private void ButtonStart_Click(object sender, EventArgs e)
    {
        help = checkBox.Checked;
        piece = int.Parse(comboBox.SelectedItem.ToString().Substring(0, 2));
        this.Close();
    }
}

По какой-то причине я всегда получаю это MessageBox.Show("Internal error");
Что мне делать? Могу ли я напрямую передать это значение в MainForm?

1 Ответ

0 голосов
/ 04 апреля 2020

Если вы используете метод Form.Close() для Form, показанного с помощью метода Form.ShowDialog(), тогда DialogResult будет Close.

. Вы должны изменить свое выражение if следующим образом. ..

if (form.ShowDialog() == DialogResult.Cancel)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...