次の方法で共有


カスタム コントロールのアプリケーション設定

コントロールがサード パーティ製アプリケーションでホストされている場合にアプリケーション設定を保持する機能をカスタム コントロールに付与するには、特定のタスクを完了する必要があります。

アプリケーション設定機能に関するドキュメントのほとんどは、スタンドアロン アプリケーションを作成することを前提として記述されています。 ただし、他の開発者がアプリケーションでホストするコントロールを作成する場合は、コントロールの設定を適切に保持するために、いくつかの追加の手順を実行する必要があります。

アプリケーション設定とカスタム コントロール

コントロールが設定を適切に保持するには、ApplicationSettingsBaseから派生した独自の専用アプリケーション設定ラッパー クラスを作成してプロセスをカプセル化する必要があります。 さらに、メイン コントロール クラスは、IPersistComponentSettingsを実装する必要があります。 インターフェイスには、LoadComponentSettingsSaveComponentSettingsの 2 つのメソッドだけでなく、いくつかのプロパティが含まれています。 Visual Studio で Windows フォーム デザイナー を使用してフォームにコントロールを追加すると、コントロールの初期化時に Windows フォームは LoadComponentSettings を自動的に呼び出します。コントロールの Dispose メソッドで自分 SaveComponentSettings を呼び出す必要があります。

さらに、Visual Studio などのデザイン時環境でカスタム コントロールのアプリケーション設定が正しく機能するためには、次のコードを実装する必要があります。

  1. IComponent を 1 つのパラメーターとして受け取るコンストラクターを持つカスタム アプリケーション設定クラス。 このクラスを使用して、すべてのアプリケーション設定を保存して読み込みます。 このクラスの新しいインスタンスを作成するときは、コンストラクターを使用してカスタム コントロールを渡します。

  2. フォームの Load イベント ハンドラーなど、フォームにコントロールが作成されて配置された後に、このカスタム設定クラスを作成します。

カスタム設定クラスを作成する手順については、「方法: アプリケーション設定を作成する」を参照してください。

設定キーと共有設定

一部のコントロールは、同じフォーム内で複数回使用できます。 ほとんどの場合、これらのコントロールは独自の個別の設定を保持する必要があります。 IPersistComponentSettingsSettingsKey プロパティを使用すると、フォーム上のコントロールの複数のバージョンを明確にするために機能する一意の文字列を指定できます。

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 の値を指定しないコントロールのインスタンスは、同じ設定を共有します。

関連項目