[解決済み] Windowsフォームアプリケーションで、アプリケーションの設定を保存するにはどうすればよいですか?
質問
実現したいことはとてもシンプルです。Windows Forms (.NET 3.5)アプリケーションで、情報を読み取るためにパスを使用しています。このパスは、私が提供するオプションフォームを使用して、ユーザーが変更することができます。
ここで、パスの値をファイルに保存して後で使用したいと思います。これは、このファイルに保存される多くの設定のうちの1つになります。このファイルは、アプリケーションフォルダーに直接置かれることになります。
3つのオプションが用意されているそうですね。
- ConfigurationSettingsファイル(appname.exe.config)
- レジストリ
- カスタムXMLファイル
.NET設定ファイルは、値を保存して戻すことは想定されていないと読みました。レジストリについては、できるだけ距離を置きたいと思います。
これは、コンフィギュレーション設定の保存にカスタム XML ファイルを使用する必要があるということですか?
もしそうなら、そのコード例(C#)を見たいです。
このテーマに関する他の議論も見ましたが、私にはまだよくわかりません。
どのように解決するのですか?
Visual Studioで作業しているのであれば、永続的な設定を得るのは非常に簡単です。ソリューションエクスプローラーでプロジェクトを右クリックし、プロパティを選択します。設定]タブを選択し、設定が存在しない場合はハイパーリンクをクリックします。
設定] タブでアプリケーション設定を作成します。Visual Studio では、以下のファイルが作成されます。
Settings.settings
と
Settings.Designer.settings
を含むシングルトンクラス
Settings
から継承された
ApplicationSettingsBase
. コードからこのクラスにアクセスすることで、アプリケーションの設定を読み書きすることができます。
Properties.Settings.Default["SomeProperty"] = "Some Value";
Properties.Settings.Default.Save(); // Saves settings in application configuration file
このテクニックは、コンソール、Windowsフォーム、その他のプロジェクトタイプのいずれにも適用できます。
を設定する必要があることに注意してください。 スコープ プロパティを設定します。Application スコープを選択した場合、Settings.Default.<your property> は読み取り専用になります。
参考にしてください。 How To: C#で実行時にユーザー設定を書き込む - Microsoft Docs
関連
-
[解決済み】「The breakpoint will not currently be hit」を改善するには?このドキュメントにはシンボルが読み込まれていません。" という警告はどうすれば改善されますか?
-
[解決済み】クロススレッド操作が有効でない。作成されたスレッド以外のスレッドからアクセスされたコントロール
-
[解決済み】ORA-01008: すべての変数がバインドされていません。これらはバインドされています。
-
[解決済み] intをenumにキャストするにはどうすればよいですか?
-
[解決済み] .NETコンソールアプリケーションでアプリケーションのパスを取得するにはどうすればよいですか?
-
[解決済み] .NETでapp.configやweb.configから設定を読み込む
-
[解決済み] コードが含まれるアセンブリのパスを取得するにはどうすればよいですか?
-
[解決済み] Node.jsのデプロイメント設定/構成ファイルを保存する方法は?
-
[解決済み] Androidレイアウトのフォルダにサブフォルダを含めることはできますか?
-
[解決済み】Windows Formsアプリケーションにキーボードショートカットを実装する最良の方法とは?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】"出力タイプがクラスライブラリのプロジェクトは直接起動できない"
-
[解決済み] エンティティタイプ ApplicationUser は、現在のコンテキストのモデルの一部ではありません。
-
[解決済み】文字列が有効な DateTime " format dd/MM/yyyy " として認識されなかった。
-
[解決済み】パディングが無効で、削除できない?
-
[解決済み】"The ConnectionString property has not been initialized "を修正する方法
-
[解決済み】Socket.Selectがエラー "An operation was attempted on something that is not a socket" を返す。
-
[解決済み] UnityでOnCollisionEnterが呼ばれない
-
[解決済み】Unity 「関連するスクリプトを読み込むことができません」「Win32Exception: システムは指定されたファイルを見つけることができません"
-
[解決済み】"指定されたパスのフォーマットはサポートされていません。"
-
[解決済み】「namespace」なのに「type」のように使われる。