4

プロジェクトのプロパティで、このような設定を作成しました

NumberOfUsers int User 10

列は、名前、タイプ、スコープ、および値です。

次に、ユーザーが「NumberOfUsers」を設定できる ComboBox があります。このコンボには SelectedIndexChanged イベントがあり、ユーザーがコンボの値を変更するたびに変更を保存します。コードは次のとおりです。

Settings.Default.NumberOfUsers = combo1.SelectedIndex;
Settings.Default.Save();

このコンボを含むフォームは、親から呼び出されfrm.ShowDialog();、子フォームのコンストラクターで、設定エントリに基づいてコンボの選択されたインデックスを設定しようとします

combo1.SelectedIndex = Settings.Default.NumberOfUsers;

ただし、これは機能しません。つまり、コンボは設定から​​値を取得せず、選択されたインデックスとしてデフォルトで 0 になります。

誰が私がどこを間違えているか知っていますか?

4

3 に答える 3

6

間違えないと思います。私の知る限り、VSはビルド中に構成ファイルも再生成します。テスト機で試してみます。
ユーザー設定をユーザーのAppData(ローカルまたはローミング?)に次のように保存します。

AppData \ [Local_or_Roaming] \ YourCompanyName \ yourprogram.exe_Url _ [...] \ 1.0.0.0 \ user.config

真ん中の長いフォルダ名はsgが異なりますが、簡単に見つかると思います。このファイルを見て、新しい値が保存されているかどうかを確認してください。

私はそれを多くの場所で使用しており、実稼働環境ではうまく機能しています。正直なところ、開発マシンでは、これまで機能していませんでした。

于 2010-08-14T12:21:10.727 に答える
0

NumberOfUsers の新しい値を ComboBox に入力していますか、それともドロップダウン リストから選択していますか?
値を入力すると、SelectedIndex は変更されないため、イベントは発生しません。

また、ComboBox には 0 から 10 までの値が入力されていますか、または ArgumentOutOfRangeExceptions を処理するコードがありますか

于 2010-08-14T15:59:15.483 に答える
0

多分そのように:

Properties.Settings.Default.NumberOfUsers = combo1.SelectedIndex;
Properties.Settings.Default.Save();
combo1.SelectedIndex = Properties.Settings.Default.NumberOfUsers;
于 2010-08-14T12:12:00.323 に答える