質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Windows Forms

Windows Forms(WinForms)はMicrosoft .NET フレームワークに含まれる視覚的なアプリケーションのプログラミングインターフェイス(API)です。WinFormsは管理されているコードの既存のWindowsのAPIをラップすることで元のMicrosoft Windowsのインターフェイスのエレメントにアクセスすることができます。

WPF

Windows Presentation Foundation (WPF) は、魅力的な外観のユーザー エクスペリエンスを持つ Windows クライアント アプリケーションを作成するための次世代プレゼンテーション システムです

Q&A

解決済

3回答

1613閲覧

C# Windows Forms またはWPF で設定を保存させる方法

FacePanel

総合スコア48

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Windows Forms

Windows Forms(WinForms)はMicrosoft .NET フレームワークに含まれる視覚的なアプリケーションのプログラミングインターフェイス(API)です。WinFormsは管理されているコードの既存のWindowsのAPIをラップすることで元のMicrosoft Windowsのインターフェイスのエレメントにアクセスすることができます。

WPF

Windows Presentation Foundation (WPF) は、魅力的な外観のユーザー エクスペリエンスを持つ Windows クライアント アプリケーションを作成するための次世代プレゼンテーション システムです

0グッド

1クリップ

投稿2018/09/17 00:53

C# Windows Forms またはWPFを使用するにあたって、作成するアプリの個人個人の設定をどこかに保存させたいと思っています。

Webアプリは、作成したことがないので、今のところ関係ないのですが、デスクトップアプリでフォールのカラーなど、使用者の
好きな設定を保存させるにあたって、保存する形式、保存する場所など、適切な方法を探しています。

おすすめの方法がありましたら、教えて頂けますよう、よろしくお願いします。

なお、参考のために、Webアプリの場合はどうするのかも教えていただけますと、今後の参考にもなり、ありがたいところです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ソリューションエクスプローラーで Properties.Settings.Settings を編集し、スコープをユーザーにするとデータは個人別になります。

投稿2018/09/17 01:17

Zuishin

総合スコア28660

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

FacePanel

2018/09/17 16:47

なかなか面白い情報のようです。しっかり調べてみたいと思います。
guest

0

windowsのデスクトップアプリケーションの場合はpepperleafさんの回答のリンク先の情報やZuishinさんの回答のやり方になります
※pepperleafさんさんの回答はlinuxの話になりますのでリンク先以外は参考にしない方が良いかもしれません
ただ、設定内容や項目間の連携が複雑になってくるのであれば単一ファイルのRDB(SQLite)を視野に入れる必要があるかもしれません。
またWebの場合はapp.configと同じようなweb.configというものがありますが、こちらは個人別の設定ではなく、全体の設定になりますので、RDBを使用する必要があるでしょう
一応設定ファイルでなければいやだというのであれば、URLではアクセスできない読み書き可能なディレクトリを用意してユーザー別にディレクトリを作ってその中に設定ファイルを置くという無謀な手段もなくはないですが、多分そんなことをやった人はいないと思いますので、素直にRDBを用意することになると思います

投稿2018/09/17 15:46

len_souko

総合スコア1348

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pepperleaf

2018/09/18 12:11

確かに指摘の .(dot)を付けるは、Linux(Unix)の習慣になりますが、ホームディレクトリに置く事自体はありです。追記しました。
guest

0

ベストアンサー

昔は iniファイルに保存してたと思った。
今は、何かと思ったのですが、先日は、ユーザーのホームに、アプリケーション名のフォルダを作成し、XMLファイル形式で保存しました。(config.xmlとか付けて)

方法としては色々とあるようですが、一般的には、Visual Studioでアプリケーションの設定を保存するの方法のようですね。 調べただけでまだ使った事はありませんが。

なお、ユーザーホームのフォルダ名は、先頭に .(dot)を付ける事が多いようです。 (Linixの場合、.(dot)で始まると隠しファイル) Linux(Unix)の影響からか、.(dot)で始まるフォルダをユーザーホーム直下に作成するアプリもあります。(自分の環境では 10を越えている)

----- と書いているうちに既に回答が入った?

[追記]
XMLファイルで作る場合、テキストファイルなので簡単に参照/変更可能です。これをメリットとみるかデメリットとみるかはそれぞれです。非公開にしたい場合は、暗号化または、別の方法が必要になります。

[追記]
ユーザーホームに作成される位置ですが、上記には、直下(\ユーザー\User) に置くと書きましたが、 "\ユーザー\User\AppData\Local"(または、Roaming) の下が本来の推奨のようでした。(ただし、"ユーザー\User\AppData"は、隠しファイル属性) 不確かな情報で申し訳ありません。 "\ユーザー\User" に置くのは、Lnux(Unix)系アプリの影響と思います。

[追記ついで]
XMLだけでなく、json形式での保存もあるようです。こちらもテキスト形式。C#でサポートされているみたいですが、詳細は未確認。

投稿2018/09/17 01:26

編集2018/09/18 12:21
pepperleaf

総合スコア6383

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

FacePanel

2018/09/17 10:30

ありがとうございます! 何が一般的かを知りたかったので、助かります。
len_souko

2018/09/17 15:37

windowsの話なのにどうしてlinuxの常識を書いているのでしょうか?
pepperleaf

2018/09/18 12:15

確かに、.(dot)を付けるのは、Linux(Unix)の習慣ではありますが、実際のユーザーホームを見ると結構な数のフォルダ(ディレクトリ)が作られているのも事実です。一般的な場所としては、 [追記]に記載しましたが、AppDataの下となります。 (と、朝書いたのですが、急いでいたので、コメントに失敗した?)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問