【学習】WinFormsでテキストをファイルに保存・読み込みしてみよう(基本)
これまでの学習では、
- ボタンを押す
- 画面に表示する
という形でプログラムを動かしてきました。
しかし、アプリにはもう一つの大切な機能があります。
データを保存する
という仕組みです。ファイルに保存すれば、アプリを終了しても内容が残ります。
今回は C# の File クラスを使って、テキストボックスに入力した内容をファイルに保存し、読み込むアプリを作ります。
今日作るもの
TextBox に文字を入力して 保存 ボタンを押すと、memo.txt に保存されます。
読み込み ボタンを押すと、保存した内容が TextBox に表示されます。
前提
TextBox(テキストボックス) を使います。まだ学習していない場合は、ツールボックスから TextBox をドラッグして配置し、Multiline を true にすると複数行入力できます。
ソリューションとプロジェクトを作る
Visual Studio で新しいプロジェクトを作ります。
- テンプレート: Windows Forms アプリ (.NET Framework)
- ソリューション名: FileSample
- プロジェクト名: MemoBasic
作成すると Form1 が表示されます。
フォームに配置するコントロール
フォームに次のものを配置します。
| コントロール | 名前 |
|---|---|
| TextBox | memoTextBox |
| Button | saveButton |
| Button | loadButton |
TextBox の Multiline を true にすると、複数行のメモが書けます。
Fileクラスとは
C# では System.IO の File クラスでファイルを扱います。
File.WriteAllText(パス, 文字列)→ ファイルに保存File.ReadAllText(パス)→ ファイルから読み込みFile.Exists(パス)→ ファイルが存在するか確認
ファイルの先頭に using System.IO; を追加する必要があります。
ボタンのイベントを登録する
saveButton と loadButton をそれぞれダブルクリックして、イベントを作成します。
完成コード
using System;
using System.IO;
using System.Windows.Forms;
namespace MemoBasic
{
public partial class Form1 : Form
{
string filePath = "memo.txt";
public Form1()
{
InitializeComponent();
}
private void saveButton_Click(object sender, EventArgs e)
{
File.WriteAllText(filePath, memoTextBox.Text);
MessageBox.Show("保存しました");
}
private void loadButton_Click(object sender, EventArgs e)
{
if (File.Exists(filePath))
{
memoTextBox.Text = File.ReadAllText(filePath);
MessageBox.Show("読み込みました");
}
else
{
MessageBox.Show("ファイルがありません");
}
}
}
}
ファイルの保存場所
memo.txt はプログラムの実行フォルダ(通常は bin\Debug や bin\Release)に保存されます。Visual Studio で実行した場合、プロジェクトフォルダ内に作成されます。
プログラムの流れ
保存
保存ボタンを押す
↓
File.WriteAllText で memoTextBox.Text を memo.txt に書き込む
↓
「保存しました」と表示
読み込み
読み込みボタンを押す
↓
File.Exists で memo.txt の有無を確認
↓
あれば ReadAllText で読み込み、TextBox に表示
なければ「ファイルがありません」と表示
重要ポイント
File クラスは「ファイルの読み書き」 を簡単にしてくれます。
WriteAllTextはファイルがなければ作成、あれば上書きReadAllTextはファイルがなければ例外が出るので、先にFile.Existsで確認するusing System.IO;を忘れずに
テキストの保存・読み込みは多くのアプリの基本です。
発展アイデア
ファイル操作を使うと次のようなものも作れます。
- ダイアログで保存場所を選ぶ(SaveFileDialog)
- ダイアログで開くファイルを選ぶ(OpenFileDialog)
- 複数行をリストとして保存(1行1項目)
- 設定の保存
次回はダイアログで保存・開くを作ります。



ディスカッション
コメント一覧
まだ、コメントがありません