inifileは結構今でも使われているので、inifile生成用のライブラリとして自分で作ってよく使うものを公開してみます。
以下にサンプルプロジェクトを。
https://github.com/kumokumocc/WORK_/tree/master/InifileTest
他のプロジェクトでも、inifileフォルダ内をコピーすれば使えます。(ただし、フォームのみ)
サンプルは、チェックボックスとテキストボックスを1個ずつ用意した単純なフォームアプリケーションです。
動作としては、
初回起動時:
チェックボックスにチェックが入る。
テキストボックスに"Default"が入る。
2回目以降:
前回起動時のチェックボックスの値、テキストボックスの値が入る。
コードサンプルは以下
using System.Windows.Forms;
namespace InifileTest
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
new inifile.Forms.Control("TestSection", "DefaultText","Default",this, textBox1, false);
new inifile.Forms.CheckBox("TestSection", "DefaultCheckBox",true,this,checkBox1,false);
}
}
}
基本的な使い方は、フォームのコンストラクタでnewするだけです。
・inifileがない場合は、デフォルトの値を起動時にテキストボックスやチェックボックスに入力。
・存在する場合はinifileから読み込んだ値をテキストボックスやチェックボックスに入力。
・フォームを閉じるとき、テキストボックスやチェックボックスの値を書き込み。(存在しない場合は自動生成)
動作としてはこれだけですが、使いやすいことこの上ないのでいつも使っています。
inifile.Forms.Controlの使い方
セクション、キーを第1、第2引数に入力し、第3引数がデフォルトの文字列、第4引数は自身の所属するフォーム。第5引数が対象のコントロール(今回はテキストボックス)、第6引数はReadOnlyかどうかを示します。trueならば読み込むだけで書き込みません。
注意事項ですが、第4引数のフォームに対してFormClosedイベントを追加してinifileに書き込んでいるので、FormClosedイベントが起こらないようなフォームの消し方をすると上手く保存しません。
(うまいやり方があったら教えてください)
inifile.Forms.CheckBoxの使い方
ほぼ同じ。第3引数がbool型になるだけです。
その他、コンボボックス等も用意していますが、基本的に同じ使い方です。
ではまた。