Оператор "==" невозможно применить к операнду типа "DialogResult" и "bool"

private string pathFile;

public Form1()
{
    InitializeComponent();
}

private void CoderButton_Click(object sender, EventArgs e)
{
    OpenFileDialog openFileDialog = new OpenFileDialog();
    openFileDialog.Filter = "Всё файлы (*.*) |*.*| Файлы Shirase (*.shirase)|*.shirase";
    if (openFileDialog.ShowDialog() == true)
    {
        pathFile = openFileDialog.FileName;
        OpenFile.Text = pathFile.ToString();

        DisplayFile(pathFile);
    }
}

Оператор == невозможно применить к операнду типа DialogResult и bool Как мне пофиксить? Такой же код, но на C# WPF работает, а на Windows Form ошибка.


Ответы (1 шт):

Автор решения: Grundy

В WPF, метод Window.ShowDialog возвращает bool?

В WinForms, метод Form.ShowDialog возвращает DialogResult

Так как методы вызываются у разных классов и имеют разные типы возвращаемых значений - просто так перенести код может не получиться.

В данном случае достаточно заменить сравнение результата с true, на сравнение с нужным значением enum, например

if (openFileDialog.ShowDialog() == DialogResult.OK)
→ Ссылка