次の方法で共有


イベント ハンドラを追加する方法

Microsoft Visual Studio Tools for Applications (VSTA) を使用して Microsoft Office InfoPath 2007 マネージ コード フォーム テンプレートにイベント ハンドラを追加する手順は、スクリプト用のイベント ハンドラを追加する場合と似ています。たとえば、Loading イベントのイベント ハンドラを追加するには、InfoPath のデザイン モードでフォーム テンプレートを開き、[ツール] メニューの [プログラミング] をポイントし、[Loading イベント] をクリックします。VSTA コード エディタのスケルトン イベント ハンドラに自動的にフォーカスが切り替わります。

Microsoft Visual Studio 2005 Tools for the 2007 Microsoft Office System インストール済みの Visual Studio 2005、または Visual Studio 2008 と Visual Studio Tools for Office でも、同じ手順を使用します。ただし、フォーム レベルのイベント (LoadingViewSwitchedContextChanged、および Sign イベント) に対してイベント ハンドラを追加する点は異なります。以下の手順では、これらの違いを記載します。

メモ重要 :

イベント ハンドラを追加すると、フォーム テンプレート プロジェクトの FormCode.cs または FormCode.vb ファイルの InternalStartup メソッドにイベント バインド コードが生成されます。InternalStartup メソッドを作成したり、このメソッドに自分でコードを追加したりしないでください。

ボタン コントロールの Click イベントに対するイベント ハンドラを追加する

  1. InfoPath で作業している場合は、デザイン モードでフォーム テンプレートを開きます。

    Visual Studio で作業している場合は、[InfoPath フォーム テンプレート] プロジェクトを開きます。

  2. [コントロール] 作業ウィンドウまたは Visual Studio の [ツールボックス] で、[ボタン] をフォームにドラッグします。

  3. ボタンをダブルクリックし、[フォームのコードを編集] をクリックします。

    VSTA または Visual Studio コード エディタの Clicked イベントのスケルトン イベント ハンドラにフォーカスが切り替わります。

フィールドまたはグループの Changing、Validating、または Changed イベントに対するイベント ハンドラを追加する

  1. InfoPath で作業している場合は、デザイン モードでフォーム テンプレートを開きます。

    Visual Studio で作業している場合は、[InfoPath フォーム テンプレート] プロジェクトを開きます。

  2. たとえば [テキスト ボックス] コントロールなど、フィールドまたはグループにバインドされたデータ入力コントロールを右クリックします。

  3. [プログラミング] をポイントし、イベント ハンドラを作成するイベントをクリックします。VSTA または Visual Studio コード エディタの ChangingValidating、または Changed イベントのスケルトン イベント ハンドラにフォーカスが切り替わります。

    メモメモ :

    フォーム テンプレートを作成したときに [フォーム テンプレートのデザイン] ダイアログ ボックスの [ブラウザ互換の機能のみを有効にする] チェック ボックスをオンにした場合、または [フォームのオプション] ダイアログ ボックスの [互換性] カテゴリで [ブラウザまたは InfoPath で開くことができるフォーム テンプレートをデザインする] チェック ボックスをオンにした場合は、[Changing イベント] のコマンドを利用できません。これは、Microsoft InfoPath Forms Services 2007 または Microsoft Office SharePoint Server 2007 (InfoPath Forms Services インストール済み) 上のドキュメント ライブラリに発行されるフォーム テンプレートのビジネス ロジックで、Changing イベントのイベント ハンドラがサポートされないためです。

フォームの Loading、ViewSwitched、ContextChanged、および Sign イベントに対するイベント ハンドラを追加する

  1. InfoPath で作業している場合は、デザイン モードでフォーム テンプレートを開きます。

    Visual Studio で作業している場合は、[InfoPath フォーム テンプレート] プロジェクトを開きます。

  2. InfoPath では、[ツール] メニューの [プログラミング] をポイントし、イベント ハンドラを作成するフォーム イベントをクリックします。

    Visual Studio では、[挿入] メニューの [イベント] をポイントし、イベント ハンドラを作成するフォーム イベントをクリックします。

    VSTA または Visual Studio コード エディタの LoadingViewSwitchedContextChanged、または Sign イベントのスケルトン イベント ハンドラにフォーカスが切り替わります。

    メモメモ :

    フォーム テンプレートを作成したときに [フォーム テンプレートのデザイン] ダイアログ ボックスの [ブラウザ互換の機能のみを有効にする] チェック ボックスをオンにした場合、または [フォームのオプション] ダイアログ ボックスの [互換性] カテゴリで [ブラウザまたは InfoPath で開くことができるフォーム テンプレートをデザインする] チェック ボックスをオンにした場合は、[ContextChanged イベント] または [Sign イベント] のコマンドを利用できません。これは、Microsoft InfoPath Forms Services 2007 または Microsoft Office SharePoint Server 2007 (InfoPath Forms Services インストール済み) 上のドキュメント ライブラリに発行されるフォーム テンプレートのビジネス ロジックで、ContextChanged および Sign イベントのイベント ハンドラがサポートされないためです。

フォームの Submit イベントに対するイベント ハンドラを追加する

  1. InfoPath で作業している場合は、デザイン モードでフォーム テンプレートを開きます。

    Visual Studio で作業している場合は、[InfoPath フォーム テンプレート] プロジェクトを開き、[manifest.xsf [デザイン]] タブをクリックしてフォーム デザイナを表示します。

  2. [ツール] メニューの [フォーム送信オプション] をクリックします。

  3. [ユーザーによるこのフォームの送信を許可する] をクリックし、[コードを使用してユーザー設定操作を実行する] をクリックし、[コードの編集] をクリックします。

    VSTA または Visual Studio コード エディタの Submit イベントのスケルトン イベント ハンドラにフォーカスが切り替わります。

フォームの Save イベントに対するイベント ハンドラを追加する

  1. InfoPath で作業している場合は、デザイン モードでフォーム テンプレートを開きます。

    Visual Studio で作業している場合は、[InfoPath フォーム テンプレート] プロジェクトを開き、[manifest.xsf [デザイン]] タブをクリックしてフォーム デザイナを表示します。

  2. [ツール] メニューの [フォームのオプション] をクリックします。

  3. [開く/保存] カテゴリをクリックし、[ユーザー設定コードを使って保存] チェック ボックスをオンにして [編集] をクリックします。

    VSTA または Visual Studio コード エディタの Save イベントのスケルトン イベント ハンドラにフォーカスが切り替わります。

    メモメモ :

    フォーム テンプレートを作成したときに [フォーム テンプレートのデザイン] ダイアログ ボックスの [ブラウザ互換の機能のみを有効にする] チェック ボックスをオンにした場合、または [フォームのオプション] ダイアログ ボックスの [互換性] カテゴリで [ブラウザまたは InfoPath で開くことができるフォーム テンプレートをデザインする] チェック ボックスをオンにした場合は、[ユーザー設定コードを使って保存] チェック ボックスを利用できません。これは、Microsoft InfoPath Forms Services 2007 または Microsoft Office SharePoint Server 2007 (InfoPath Forms Services インストール済み) 上のドキュメント ライブラリに発行されるフォーム テンプレートのビジネス ロジックで、Save イベントのイベント ハンドラがサポートされないためです。

フォームの VersionUpgrade イベントに対するイベント ハンドラを追加する

  1. InfoPath で作業している場合は、デザイン モードでフォーム テンプレートを開きます。

    Visual Studio で作業している場合は、[InfoPath フォーム テンプレート] プロジェクトを開き、[manifest.xsf [デザイン]] タブをクリックしてフォーム デザイナを表示します。

  2. [ツール] メニューの [フォームのオプション] をクリックします。

  3. [プログラミング] カテゴリをクリックし、[バージョンのアップグレード] ボックスの一覧の [ユーザー設定イベントの使用] をクリックし、[編集] をクリックします。

    VSTA または Visual Studio コード エディタの Save イベントのスケルトン イベント ハンドラにフォーカスが切り替わります。

フォームの Merge イベントに対するイベント ハンドラを追加する

  1. InfoPath で作業している場合は、デザイン モードでフォーム テンプレートを開きます。

    Visual Studio で作業している場合は、[InfoPath フォーム テンプレート] プロジェクトを開き、[manifest.xsf [デザイン]] タブをクリックしてフォーム デザイナを表示します。

  2. [ツール] メニューの [フォームのオプション] をクリックします。

  3. [詳細設定] カテゴリをクリックし、[フォームの結合を有効にする] チェック ボックスをオンにして、[編集] をクリックします。

    VSTA または Visual Studio コード エディタの Merge イベントのスケルトン イベント ハンドラにフォーカスが切り替わります。

    メモメモ :

    フォーム テンプレートを作成したときに [フォーム テンプレートのデザイン] ダイアログ ボックスの [ブラウザ互換の機能のみを有効にする] チェック ボックスをオンにした場合、または [フォームのオプション] ダイアログ ボックスの [互換性] カテゴリで [ブラウザまたは InfoPath で開くことができるフォーム テンプレートをデザインする] チェック ボックスをオンにした場合は、[フォームの結合を有効にする] を利用できません。これは、Microsoft InfoPath Forms Services 2007 または Microsoft Office SharePoint Server 2007 (InfoPath Forms Services インストール済み) 上のドキュメント ライブラリに発行されるフォーム テンプレートのビジネス ロジックで、Merge イベントのイベント ハンドラがサポートされないためです。

関連項目

タスク

[WALKTHROUGH] InfoPath 2003 オブジェクト モデルを使用して基本的なフォーム テンプレートを作成およびデバッグする方法