カスタム コントロールのアプリケーション設定
コントロールがサード パーティ製アプリケーションでホストされている場合にアプリケーション設定を保持する機能をカスタム コントロールに付与するには、特定のタスクを完了する必要があります。
アプリケーション設定機能に関するドキュメントのほとんどは、スタンドアロン アプリケーションを作成することを前提として記述されています。 ただし、他の開発者がアプリケーションでホストするコントロールを作成する場合は、コントロールの設定を適切に保持するために、いくつかの追加の手順を実行する必要があります。
アプリケーション設定とカスタム コントロール
コントロールが設定を適切に保持するには、ApplicationSettingsBaseから派生した独自の専用アプリケーション設定ラッパー クラスを作成してプロセスをカプセル化する必要があります。 さらに、メイン コントロール クラスは、IPersistComponentSettingsを実装する必要があります。 インターフェイスには、LoadComponentSettings と SaveComponentSettingsの 2 つのメソッドだけでなく、いくつかのプロパティが含まれています。 Visual Studio で Windows フォーム デザイナー を使用してフォームにコントロールを追加すると、コントロールの初期化時に Windows フォームは LoadComponentSettings を自動的に呼び出します。コントロールの Dispose
メソッドで自分 SaveComponentSettings を呼び出す必要があります。
さらに、Visual Studio などのデザイン時環境でカスタム コントロールのアプリケーション設定が正しく機能するためには、次のコードを実装する必要があります。
IComponent を 1 つのパラメーターとして受け取るコンストラクターを持つカスタム アプリケーション設定クラス。 このクラスを使用して、すべてのアプリケーション設定を保存して読み込みます。 このクラスの新しいインスタンスを作成するときは、コンストラクターを使用してカスタム コントロールを渡します。
フォームの Load イベント ハンドラーなど、フォームにコントロールが作成されて配置された後に、このカスタム設定クラスを作成します。
カスタム設定クラスを作成する手順については、「方法: アプリケーション設定を作成する」を参照してください。
設定キーと共有設定
一部のコントロールは、同じフォーム内で複数回使用できます。 ほとんどの場合、これらのコントロールは独自の個別の設定を保持する必要があります。 IPersistComponentSettingsの SettingsKey プロパティを使用すると、フォーム上のコントロールの複数のバージョンを明確にするために機能する一意の文字列を指定できます。
SettingsKey を実装する最も簡単な方法は、SettingsKeyにコントロールの Name プロパティを使用することです。 コントロールの設定を読み込んだり保存したりすると、SettingsKey の値を ApplicationSettingsBase クラスの SettingsKey プロパティに渡します。 アプリケーション設定は、ユーザーの設定を XML に保持するときに、この一意のキーを使用します。 次のコード例は、<userSettings>
セクションで、Text
プロパティの設定を保存する CustomControl1
という名前のカスタム コントロールのインスタンスを検索する方法を示しています。
<userSettings>
<CustomControl1>
<setting name="Text" serializedAs="string">
<value>Hello, World</value>
</setting>
</CustomControl1>
</userSettings>
SettingsKey の値を指定しないコントロールのインスタンスは、同じ設定を共有します。
関連項目
.NET Desktop feedback