次の方法で共有


AxHost.AboutBoxDelegate デリゲート

ActiveX コントロールの [バージョン情報] ダイアログ ボックスを表示するメソッドを表します。

<Serializable>
Protected Delegate Sub AxHost.AboutBoxDelegate()
[C#]
[Serializable]
protected delegate void AxHost.AboutBoxDelegate();
[C++]
[Serializable]
protected __gc __delegate void AxHost.AboutBoxDelegate();

[JScript] JScript では、.NET Framework のデリゲートを利用することができます。ただし、独自に定義することはできません。

パラメータ [Visual Basic, C#, C++]

コールバック メソッドの宣言のパラメータは、AxHost.AboutBoxDelegate デリゲートの宣言と同じでなければなりません。

解説

The AxHost.AboutBoxDelegate を使用すると、ActiveX コントロールの [バージョン情報] ボックスが表示されるときに通知を受け取ることができます。デリゲート メソッドに追加したコードは、[バージョン情報] ボックスが表示される前に実行されます。

AxHost.AboutBoxDelegate デリゲートを作成するときに、ActiveX コントロールの [バージョン情報] ダイアログ ボックスが存在する場合は、その表示を処理するメソッドを識別します。メソッドをハンドラに関連付けるには、デリゲートのインスタンスをメソッドに追加します。デリゲートを削除しない限り、メソッドを呼び出すと常にハンドラが呼び出されます。デリゲートの詳細については、「 イベントとデリゲート 」を参照してください。

使用例

[C#] Microsoft Masked Edit ActiveX コントロールをラップする AxHost の派生クラスのコンストラクタ、 SetAboutBoxDelegate メソッド、および AttachInterfaces メソッドをオーバーライドする例を次に示します。このコードは、MSMask32.ocx ファイル上で /source スイッチを使用して AxImp.exe を実行し、編集対象となるラッパー クラスを生成することで、生成されるソース コードを作成済みであることを前提としています。AxImp.exe の出力言語は C# だけなので、ここでは C# 構文のコードだけを示します。

 
public AxMaskEdBox() : 
  base("c932ba85-4374-101b-a56c-00aa003668dc") // The ActiveX control's class identifier.
{
   // Make the AboutBox method the about box delegate.
   this.SetAboutBoxDelegate(new AboutBoxDelegate(AboutBox));
}
        
public virtual void AboutBox() 
{
   // If the instance of the ActiveX control is null when the AboutBox method 
   // is called, raise an InvalidActiveXStateException exception.
   if ((this.ocx == null)) 
   {
      throw new System.Windows.Forms.AxHost.InvalidActiveXStateException(
        "AboutBox", System.Windows.Forms.AxHost.ActiveXInvokeKind.MethodInvoke);
   }
   // Show the about box if the ActiveX control has one.
   if(this.HasAboutBox)
   {
      this.ocx.AboutBox();
   }
}

protected override void AttachInterfaces() 
{
   try 
   {
      // Attach the IMSMask interface to the ActiveX control.
      this.ocx = ((MSMask.IMSMask)(this.GetOcx()));
   }
   catch (System.Exception ex) 
   {
      System.Console.WriteLine(ex.Message);
   }
}

[Visual Basic, C++, JScript] Visual Basic、C++、および JScript のサンプルはありません。C# のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

名前空間: System.Windows.Forms

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

アセンブリ: System.Windows.Forms (System.Windows.Forms.dll 内)

参照

System.Windows.Forms 名前空間 | SetAboutBoxDelegate | ShowAboutBox | HasAboutBox