[WPF][コード例] 指定したテキストファイルを読み込んでテキストボックスに表示する

スポンサーリンク

概要

この記事では、WPF(Windows Presentation Foundation)を使用して、指定したテキストファイルを読み込で、そのファイル内容をテキストボックスに表示する例について解説します。

コード例

画面デザイン(XAML)

XAMLファイルで以下のようにUIを作成します。

<Window x:Class="WpfpenTextExample.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Save Text Example" Height="250" Width="400">
    <Grid>
        <StackPanel Margin="20">
            <TextBox x:Name="textBox" MinHeight="100" MinWidth="200" TextWrapping="Wrap" AcceptsReturn="True" />
            <Button x:Name="btnOpen" Content="開く" Click="btnOpen_Click" />        </StackPanel>
    </Grid>
</Window>ぷ

 

コードビハインド

次に、コードビハインド(MainWindow.xaml.cs)で以下のようにボタンのクリックイベントを処理します。

using System;
using System.IO;
using System.Windows;

namespace WpfOpenTextExample
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void btnOpen_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                // ファイルの読み込み
                string fileContent = File.ReadAllText(@"C:\work\sample_text.txt");
                textBox.Text = fileContent;
            }
            catch (Exception ex)
            {
                MessageBox.Show("エラーが発生しました:" + ex.Message);
            }
        }
    }
}
実行例

実行例

 

解説

このサンプルでは、任意のファイルを読み込んで表示する例です。 btnOpen_Click(object sender, RoutedEventArgs e)イベント内で、以下の処理を行います。

  1. File.ReadAllTextメソッドを使用して C:\Work\sample.txt を読み込みます。
  2. 読み込んだテキストをテキストボックスに表示します
  3. 読み込み中にエラーが発生した場合は、catchブロック内でエラーメッセージを表示します。

まとめ

このサンプルでは、File.ReadAllTextを使用してテキスト読み込みましたが、他の方法もあります。例えば、StreamReaderクラスを使用してテキストを読み込むこともできます。また、読み込みをするファイルのパスや保存するファイルの形式(テキストファイル以外)を変更することも可能です。

さらに、このサンプルではエラーハンドリングも行っています。ファイルの読み込み中に何らかのエラーが発生した場合、try-catchブロック内のcatch節が実行され、エラーメッセージが表示されます。エラーハンドリングを行うことで、ユーザーに正確な情報を提供し、問題のトラブルシューティングを支援することができます。

Please follow and like us:

コメント

タイトルとURLをコピーしました