Terence-J20 Ответов: 2

Как создать приложение, отображающее текстовый файл


Привет всем, пожалуйста, помогите мне с моим упражнением. Я пытаюсь создать приложение в WPF, которое открывает, читает и отображает содержимое текстового файла, но оно не хочет открывать никаких текстовых файлов. Что я делаю не так?

Вот код, который я использовал:

namespace WhileStatement
{
  
    public partial class MainWindow : Window
    {
        private OpenFileDialog openFileDialog = null;

        public MainWindow()
        {
            InitializeComponent();
            openFileDialog = new OpenFileDialog();
        }

        private void openFileClick(object sender, RoutedEventArgs e)
        {
            openFileDialog.ShowDialog();
        }

        private void openFileDialogFileOk(object sender, System.ComponentModel.CancelEventArgs e)
        {
            string fullPathname = openFileDialog.FileName;
            FileInfo src = new FileInfo(fullPathname);
            fileName.Text = src.FullName;
            TextReader reader = src.OpenText();
            displayData(reader);
        }

        private void displayData(TextReader reader)
        {
            source.Text = "";
            string line = reader.ReadLine();
            while (line != null);
            {
                source.Text += line + '\n';
                line = reader.ReadLine();
            }
            reader.Close();
        }
    }
}


Что я уже пробовал:

Я пробовал библиотеку google и MSDN.

2 Ответов

Рейтинг:
1

Richard Deeming

Вы создали openFileDialogFileOk метод, но вы не подключили его к openFileDialog.FileOk событие:

public MainWindow()
{
    InitializeComponent();
    openFileDialog = new OpenFileDialog();
    openFileDialog.FileOk += openFileDialogFileOk; // <-- Add this line
}

Вы также должны избегать использования конкатенации строк в цикле, так как это крайне неэффективно:
private void openFileDialogFileOk(object sender, System.ComponentModel.CancelEventArgs e)
{
    string fullPathname = openFileDialog.FileName;
    FileInfo src = new FileInfo(fullPathname);
    fileName.Text = src.FullName;
    
    source.Text = File.ReadAllText(src.FullName);
}

Файл.Метод ReadAllText[^]


Рейтинг:
0

Graeme_Grant

Поиск в Google показывает множество примеров того, как использовать:

1. openFileDialog: Майкрософт документы пример диалогового окна openfiledialog в WPF - поиск в Google [^]:
* Учебник WPF-OpenFileDialog[^]
* Пример диалогового окна openfiledialog [^]
* Как открыть файлы с помощью компонента OpenFileDialog | Microsoft Docs[^]

2. Чтение текстового файла: wpf read a text file-поиск в Google[^]
* Как читать текст из файла | Microsoft Docs[^]
* Как читать текстовый файл на C#?[^]
* Чтение и запись в текстовый файл с помощью C# / Rhyous[^]

Краткое решение от Как открыть файлы с помощью компонента OpenFileDialog | Microsoft Docs[^]:

private void openFileClick(object sender, RoutedEventArgs e)
{  
   if(openFileDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)  
   {  
      System.IO.StreamReader sr = new   
         System.IO.StreamReader(openFileDialog1.FileName);  
      source.Text = sr.ReadToEnd();
      sr.Close();  
   }  
}

Кроме того, кроме того wpf-tutorial.com[^] еще один хороший полезный сайт-это: 2000 вещей, которые вы должны знать о WPF | все, что нужно знать разработчику WPF, в кусочках размером с укус[^]