2012-01-26 10 views
0

私はC#4.0、VS2010、Winformsを使用します。 私はDevExpress SplitContainerControlをベースフォームに持っていますが、実行時にユーザ設定ファイルの派生フォームにSplitterPosition(int)を永続化したいのです。私は、スプリッタの位置(int値)を永続化するコードが必要実行時に設定値を作成して保持する

string _splitterSettingsName; 
public string SplitterSettingsName { 
    get { 
     if (string.IsNullOrEmpty(_splitterSettingsName)) 
      _splitterSettingsName = GetType().Name + "splitterSettings"; 
     return _splitterSettingsName; 
    } 
    set { _splitterSettingsName = value; } 
} 

: は私が取得/設定のプロパティ名を生成するには、次のコードを使用します。おかげさまで

答えて

1

組み込みの設定を使用します。 Visual StudioでMyProject - > Properties - > Settings.Settingsを開きます。ユーザースコープ(実行時に編集できるように)を作成します。 その後、プロパティとしてコードに設定することでアクセスできます。

Properties.Default.Settings.MySettingName = _splitterPosition; 

およびその逆。

更新

私のコメントで述べたように、私は、ダイナミック名に対してお勧めします。しかし、動的に名前を付けた設定をどのように実装するかを考えてみましょう。 System.Configuration.ApplicationSettingsBaseから継承するクラスを作成し、内部インデクサに渡す文字列パラメータを取得するメソッドを実装すると便利です。次のようなものがあります。

public sealed class MySettings : ApplicationSettingsBase 
{ 
    public int GetSplitterPos(string splitterName) 
    { 
     return ((int)(this[splitterName])); 
    } 
    public void SetSplitterPos(string splitterName, int pos) 
    { 
     this[splitterName] = pos; 
    } 
} 
+0

スプリッタは基本形式です。設定プロパティ名は、派生フォームが初めて読み込まれるときに動的に生成されます。 – user1104916

+0

永続化コードは基本形式に移行する必要があり、設定プロパティ名は派生形式で動的に生成されます。 – user1104916

+0

設定名を動的に生成するのはなぜですか? 特にスプリッターコントロールのようなもの。手動で行うことを強くお勧めします。名前を動的に生成すると混乱することがあります。 –

関連する問題