雷って幻想的だよね?

宗教:C++、C#、ラノベ好きの戯言です。

C# listViewのColumnsの幅保存

C# で LixtView を利用して簡単な物を作成している際、
再起動時に保存してて欲しいよね!

と言うことで、その設定をしていました。

デフォルトウィンドウに関する物は、
デザインのプロパティ
例:Form1.cs[デザイン]のプロパティ
のデータ→(ApplicationSetting)→(PropertyBinding)の 「...」をクリックして、
バインドする名称を与えて、プログラム終了時(FormClosed)で
「Properties.Settings.Default.Save();」
を宣言すればOKだった。
例:

private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
	//最後に保存
	Properties.Settings.Default.Save();
}

で、ListViewはそれでは保存されない・・・どうしよう・・・
ListViewのプロパティを見ると「Columns」と言うのがある。
(今回はここで項目の指定をしています。)
ここに、(ApplicationSetting)があるので、先ほどと同じように設定します。
次に、
Form1を利用している場合は
Form1.Designer.csを開き、
先ほど設定した名称が出てくる行を探します。

(ApplicationSetting)にColumnWidth_0を設定した場合
this.columnHeader1.Width = global::(プロジェクト名).Properties.Settings.Default.ColumnWidth_0;

とあるので、
FormClosedで

global::(プロジェクト名).Properties.Settings.Default.ColumnWidth_0
= this.columnHeader1.Width;

のように「=」の左右を入れ替えて記述すれば完了。
保存してくれるようになります。

↓こんな感じで記述。

private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
	//↓のように設定していけば設定が保存される
	global::EasyToDo.Properties.Settings.Default.ColumnWidth_0 = this.columnHeader1.Width;

	//最後に保存
	Properties.Settings.Default.Save();

}

以上となります。