0

次のような設定ファイルに特定の値を保存する C# アプリケーションがあります。

<?xml version="1.0"?>
<configuration>
    <configSections>
        <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
            <section name="VITRIconEvacuationPlan.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/>
        </sectionGroup>
        <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
            <section name="VITRIconEvacuationPlan.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
        </sectionGroup>
    </configSections>
    <applicationSettings>
        <EvacuationPlan.Properties.Settings>
            <setting name="AssemblyCentre" serializeAs="String">
                <value>False</value>
            </setting>
        </EvacuationPlan.Properties.Settings>
    </applicationSettings>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup><userSettings>
        <EvacuationPlan.Properties.Settings>
            <setting name="SymbolScale" serializeAs="String">
                <value>25</value>
            </setting>
        </EvacuationPlan.Properties.Settings>
    </userSettings>
</configuration>

デフォルトでは、SymbolScale プロパティは 25 に設定されています (最初にアプリケーションを起動したとき)。実行時に SymbolScale プロパティを変更したいので、これをユーザー スコープに入れます。だから私は言うことができます:

setting.SymbolScale = 150;
setting.save();

しかし、アプリケーションを閉じると、SymbolScale の値は再び 25 になります。しかし、ランタイムから変更された値を保存したいのです。私は何を間違っていますか?

4

3 に答える 3

2

私はここで解決策を見つけました:

http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/ddeaca86-a093-4997-82c9-01bc0c630138/

SymbolValueを次のように変更して保存する必要がありました。

Properties.Settings.Default.SymbolScale = 150;
Properties.Settings.Default.Save();
Properties.Settings.Default.Upgrade();
Properties.Settings.Default.Save();

なぜsave関数を2回呼び出さなければならないのかわかりませんが、機能します(2回呼び出すだけで)

于 2012-12-29T18:53:58.180 に答える
0

正しい「user.config」ファイルを確認していますか? 通常は「C:\Users\xyzuser\AppData\Local\yourcompany\youarpp\version\user.config」に格納されています。

それが役立つことを願っています!

于 2012-12-29T18:13:15.507 に答える
0

次のように設定します。Settings.Default.SymbolScale = 150;

で保存Settings.Default.Save();

于 2012-12-29T18:19:46.937 に答える