оператор if, как остановить программу для продолжения чтения после первого правильного оператора if или else if - PullRequest
0 голосов
/ 05 октября 2019

в операторах if else программа также читает второй оператор, даже если он не используется.

Второй оператор else if содержит ссылку на форму WPF для печати. Несмотря на то, что он не используется, потому что используется первый оператор if, он все же выбирает кодировку в WPF и помещает оконные формы в очень маленькую форму.

Мне нужно, чтобы программа не читала оператор else if.

private void btnPrintPies_Click(object sender, EventArgs e)
{
    if (txtPiesRecID == null || dgvPies.CurrentCell == null)
    {
        MessageBox.Show("There is no recipe to print", "Error");
        this.tabControl1.SelectedTab = tabPage11;

    }
    else if (txtPiesRecID != null || dgvPies.CurrentCell != null)
    {
        SetValueForPrRecID = txtPiesRecID.Text;
        PtRecipe window = new PtRecipe();
        window.Show();
    }
}

Ответы [ 2 ]

0 голосов
/ 05 ноября 2019

Поскольку кодирование в WPF вмешивалось в форму окна, я преобразовал программу в WPF без форм окна. Это решило проблему чтения программой другой части и сброса размеров форм.

0 голосов
/ 06 октября 2019

Здесь происходит несколько вещей.

Прежде всего, вы используете 'или'. Если левая рука оценивается как ложная, она оценивает правую руку. Если правая рука ложна, она будет продолжать идти по оператору до тех пор, пока условие не станет истинным.

Здесь возможны две проблемы: одно из этих значений не равно нулю, поэтому оно и сводится кпоследняя ветка. Или ваша последняя ветвь использует 'или', когда я считаю, что вы должны использовать &&.

If-Statements в C # при коротком замыкании при использовании оператора or, все, что ему нужно, - это одно условие, которое должно быть истинным для выполнениякод в теле.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...