Kontynuuj otwieranie OpenFileDialog do momentu wybrania poprawnego pliku

Mam kod, który otwiera OpenFileDialog, sprawdzam rozmiar pliku, aby upewnić się, że nie przekracza określonego limitu. Ale jeśli użytkownik wybrał duży plik, muszę go ostrzec i poprowadzić z powrotem do okna dialogowego, aby wybrać inny plik lub kliknąć Anuluj.

To właśnie próbowałem:

        OpenFileDialog dialog = new OpenFileDialog();
        dialog.Filter = "Jpeg files, PDF files, Word files|*.jpg;*.pdf;*.doc;*.docx";
        while (dialog.ShowDialog() != DialogResult.Cancel)
        {
                var size = new FileInfo(dialog.FileName).Length;
                if (size > 250000)
                {
                    MessageBox.Show("File size exceeded");
                    continue;
                }
        }

EDYTUJ: Próbowałem również następującego kodu, ale otwiera okno dialogowe przy każdym wywołaniu ShowDialog. Jeśli więc użytkownik wybrał plik o rozmiarze 3x większym niż limit, okno dialogowe pojawi się 3 razy.

  OpenFileDialog dialog = new OpenFileDialog();
        dialog.Filter = "Jpeg files, PDF files, Word files|*.jpg;*.pdf;*.doc;*.docx";
        dialog.FileOk += delegate(object s, CancelEventArgs ev)
        {
            var size = new FileInfo(dialog.FileName).Length;
            if (size > 250000)
            {
                XtraMessageBox.Show("File size");
                dialog.ShowDialog();
            }
        };
        if (dialog.ShowDialog() == DialogResult.OK)
        {
            XtraMessageBox.Show("File Selected");
        }

questionAnswers(4)

yourAnswerToTheQuestion