IEventBindingServiceとは? わかりやすく解説

IEventBindingService インターフェイス

コンポーネントイベント対すイベント ハンドラ登録するためのサービス提供します

名前空間: System.ComponentModel.Design
アセンブリ: System (system.dll 内)
構文構文

<ComVisibleAttribute(True)> _
Public Interface IEventBindingService
Dim instance As IEventBindingService
[ComVisibleAttribute(true)] 
public interface IEventBindingService
[ComVisibleAttribute(true)] 
public interface class IEventBindingService
/** @attribute ComVisibleAttribute(true) */ 
public interface IEventBindingService
ComVisibleAttribute(true) 
public interface IEventBindingService
解説解説

イベント バインディング サービスは、デザイナコードから、イベント ハンドラコンポーネント イベントリンクする手段提供します

IEventBindingService使用してイベント ハンドラコンポーネント イベントリンクするには、最初にリンクするコンポーネントイベント対応する EventDescriptor を取得する必要がありますIEventBindingService は、EventDescriptor を PropertyDescriptor に変換できるメソッド提供します。これを使用してイベント ハンドラメソッド名でイベント構成できます

TypeDescriptor オブジェクトは GetEvents メソッド提供します。このメソッド使用すると、コンポーネントの各イベント対すEventDescriptor格納した EventDescriptorCollection を取得できますIEventBindingService の GetEventProperty メソッドと GetEventProperties メソッドは、それぞれのメソッド渡されEventDescriptor対すPropertyDescriptor返しますGetEventProperty または GetEventProperties から返されるPropertyDescriptor には、文字列型プロパティあります。この文字列には、PropertyDescriptor の SetValue メソッド使用してイベントリンクするイベント処理メソッドの名前を示す値を設定できます

使用例使用例

IEventBindingService使用してデザイナコンポーネントに対して追加したカスタム ショートカット メニュー コマンド起動されたときに、デザイン時にコンポーネントイベントイベント ハンドラリンクするデザイナの例を次に示します。この例を使用するには、コンパイルしてクラス ライブラリ作成しWindows フォームプロジェクトから参照追加してクラス ライブラリ内のコンポーネントツールボックス追加します。これを行うには、ツールボックス右クリックして [アイテムの追加削除] をクリックしクラス ライブラリ選択して、[OK] をクリックし、EventControl のインスタンスフォーム追加します次に、EventControl を右クリックして、ショートカット メニュー コマンド [Connect testEvent] をクリックします。空のイベント ハンドラ メソッド作成され、EventControl の testEvent メソッドが、フォーム初期化コードでこのイベント ハンドラ初期化されます

Imports System
Imports System.Collections
Imports System.ComponentModel
Imports System.ComponentModel.Design
Imports System.Data
Imports System.Drawing
Imports System.Windows.Forms
Imports System.Windows.Forms.Design

Namespace EventDesignerTest
    ' This designer provides a "Connect testEvent" designer
 verb shortcut 
    ' menu command. When invoked, the command attaches a new event-handler
 
    ' method named "testEventHandler" to the "testEvent"
 event of an 
    ' associated control.
    ' If a "testEvent" event of the associated control does
 not exist, 
    ' the IEventBindingService declares it.
    <System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.Demand,
 Name:="FullTrust")> _
    Public Class EventDesigner
        Inherits System.Windows.Forms.Design.ControlDesigner

        Public Sub New()
        End Sub

        ' When the "Connect testEvent" designer verb shortcut
 menu 
        ' command is invoked, this method uses the 
        ' IEventBindingService to attach an event handler to a "textEvent"
 event of the associated control.
        Private Sub ConnectEvent(ByVal
 sender As Object, ByVal
 e As EventArgs)
            Dim eventservice As IEventBindingService
 = CType(Me.Component.Site.GetService(GetType(System.ComponentModel.Design.IEventBindingService)),
 IEventBindingService)
            If Not (eventservice Is
 Nothing) Then
                ' Attempt to obtain a PropertyDescriptor for a 
                ' component event named "testEvent".
                Dim edc As EventDescriptorCollection
 = TypeDescriptor.GetEvents(Me.Component)
                If edc Is Nothing
 Or edc.Count = 0 Then
                    Return
                End If
                Dim ed As EventDescriptor =
 Nothing
                ' Search for an event named "testEvent".
                Dim edi As EventDescriptor
                For Each edi In
 edc
                    If edi.Name = "testEvent"
 Then
                        ed = edi
                        Exit For
                    End If
                Next edi
                If ed Is Nothing
 Then
                    Return
                End If
                ' Use the IEventBindingService to get a 
                ' PropertyDescriptor for the event.
                Dim pd As PropertyDescriptor
 = eventservice.GetEventProperty(ed)
                If pd Is Nothing
 Then
                    Return
                End If
                ' Set the value of the event to "testEventHandler".
                pd.SetValue(Me.Component, "testEventHandler")
            End If
        End Sub

        ' Provides a designer verb command for the designer's 
        ' shortcut menu.
        Public Overrides ReadOnly
 Property Verbs() As System.ComponentModel.Design.DesignerVerbCollection
            Get
                Dim dvc As New
 DesignerVerbCollection()
                dvc.Add(New DesignerVerb("Connect
 testEvent", New EventHandler(AddressOf
 ConnectEvent)))
                Return dvc
            End Get
        End Property
    End Class

    ' EventControl is associated with the EventDesigner and displays
 
    ' instructions for demonstrating the service.
    <Designer(GetType(EventDesigner))> _
    Public Class EventControl
        Inherits System.Windows.Forms.UserControl
        Public Event testEvent As
 System.EventHandler

        Public Sub New()
            Me.BackColor = Color.White
            Me.Size = New Size(320, 96)
        End Sub

        Protected Overloads Overrides
 Sub Dispose(ByVal disposing As
 Boolean)
            MyBase.Dispose(disposing)
        End Sub

        Protected Overrides Sub
 OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
            e.Graphics.DrawString("IEventBindingService Example
 Control", New Font(FontFamily.GenericMonospace,
 10), New SolidBrush(Color.Blue), 5, 5)
            e.Graphics.DrawString("Use the ""Connect
 testEvent"" command of the", New
 Font(FontFamily.GenericMonospace, 8), New SolidBrush(Color.Black), 5, 22)
            e.Graphics.DrawString("right-click shortcut menu provided
 by this", New Font(FontFamily.GenericMonospace,
 8), New SolidBrush(Color.Black), 5, 32)
            e.Graphics.DrawString("control's associated EventDesigner
 to create", New Font(FontFamily.GenericMonospace, 8), New SolidBrush(Color.Black),
 5, 42)
            e.Graphics.DrawString("a new event handler linked
 with the testEvent", New Font(FontFamily.GenericMonospace,
 8), New SolidBrush(Color.Black), 5, 52)
            e.Graphics.DrawString("of this control in the initialization
 code", New Font(FontFamily.GenericMonospace, 8),
 New SolidBrush(Color.Black), 5, 62)
            e.Graphics.DrawString("for this control.",
 New Font(FontFamily.GenericMonospace, 8), New
 SolidBrush(Color.Black), 5, 72)
        End Sub

    End Class
End Namespace
using System;
using System.Collections;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Drawing;
using System.Data;
using System.Windows.Forms;
using System.Windows.Forms.Design;

namespace EventDesignerTest
{
    // This designer provides a "Connect testEvent" designer
 verb shortcut 
    // menu command. When invoked, the command attaches a new event-handler
 
    // method named "testEventHandler" to the "testEvent"
 event of an 
    // associated control.
    // If a "testEvent" event of the associated control does
 not exist, 
    // the IEventBindingService declares it.
    [System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand,
 Name = "FullTrust")] 
    public class EventDesigner : System.Windows.Forms.Design.ControlDesigner
    {
        public EventDesigner()
        {
        }
        
        // When the "Connect testEvent" designer verb shortcut
 menu 
        // command is invoked, this method uses the 
        // IEventBindingService to attach an event handler to a 
        // "textEvent" event of the associated control.
        private void ConnectEvent(object sender,
 EventArgs e)
        {
            IEventBindingService eventservice = (IEventBindingService)this.Component.Site.GetService(typeof(System.ComponentModel.Design.IEventBindingService));
            if( eventservice != null )
            {
                // Attempt to obtain a PropertyDescriptor for a 
                // component event named "testEvent".
                EventDescriptorCollection edc = TypeDescriptor.GetEvents(this.Component);
                
                if( edc == null || edc.Count
 == 0 )
                    return;
                                
                EventDescriptor ed = null;
                // Search for an event named "testEvent".
                foreach(EventDescriptor edi in
 edc)
                    if(edi.Name == "testEvent")
                    {
                        ed = edi;
                        break;
                    }
                if( ed == null )
                    return;

                // Use the IEventBindingService to get a 
                // PropertyDescriptor for the event.
                PropertyDescriptor pd = eventservice.GetEventProperty(ed);
                if( pd == null )
                    return;                
                
                // Set the value of the event to "testEventHandler".
                pd.SetValue(this.Component, "testEventHandler");
            }
        }

                // Provides a designer verb command for the designer's
 
                // shortcut menu.
        public override System.ComponentModel.Design.DesignerVerbCollection
 Verbs
        {
            get
            {
                DesignerVerbCollection dvc = new DesignerVerbCollection();
                dvc.Add(new DesignerVerb("Connect testEvent",
 new EventHandler(ConnectEvent)));
                return dvc;
            }
        }
    }

    // EventControl is associated with the EventDesigner and displays
 
    // instructions for demonstrating the service.
    [Designer(typeof(EventDesigner))]
    public class EventControl : System.Windows.Forms.UserControl
    {
        public event System.EventHandler testEvent;

        public EventControl()
        {        
            this.BackColor = Color.White;    
            this.Size = new Size(320, 96);
        }

        protected override void Dispose( bool
 disposing )
        {
            base.Dispose( disposing );
        }

        protected override void OnPaint(System.Windows.Forms.PaintEventArgs
 e)
        {
            e.Graphics.DrawString("IEventBindingService Example Control",
 new Font(FontFamily.GenericMonospace, 10), new
 SolidBrush(Color.Blue), 5, 5);
            
            e.Graphics.DrawString("Use the \"Connect testEvent\" command
 of the", new Font(FontFamily.GenericMonospace, 8), new
 SolidBrush(Color.Black), 5, 22);
            e.Graphics.DrawString("right-click shortcut menu provided by this",
 new Font(FontFamily.GenericMonospace, 8), new
 SolidBrush(Color.Black), 5, 32);
            e.Graphics.DrawString("control's associated EventDesigner to create",
 new Font(FontFamily.GenericMonospace, 8), new
 SolidBrush(Color.Black), 5, 42);
            e.Graphics.DrawString("a new event handler linked
 with the testEvent", new Font(FontFamily.GenericMonospace,
 8), new SolidBrush(Color.Black), 5, 52);
            e.Graphics.DrawString("of this control in
 the initialization code", new Font(FontFamily.GenericMonospace,
 8), new SolidBrush(Color.Black), 5, 62);
            e.Graphics.DrawString("for this
 control.", new Font(FontFamily.GenericMonospace, 8), new
 SolidBrush(Color.Black), 5, 72);
        }
    }
}
#using <System.Windows.Forms.dll>
#using <System.Data.dll>
#using <System.Drawing.dll>
#using <System.Design.dll>
#using <System.dll>

using namespace System;
using namespace System::Collections;
using namespace System::ComponentModel;
using namespace System::ComponentModel::Design;
using namespace System::Drawing;
using namespace System::Data;
using namespace System::Windows::Forms;
using namespace System::Windows::Forms::Design;
using namespace System::Security::Permissions;

// This designer provides a "Connect testEvent" designer verb
 shortcut 
// menu command. When invoked, the command attaches a new event-handler
 
// method named "testEventHandler" to the "testEvent"
 event of an 
// associated control.
// If a "testEvent" event of the associated control does not
 exist, 
// the IEventBindingService declares it.
public ref class EventDesigner: public
 System::Windows::Forms::Design::ControlDesigner
{
public:
   EventDesigner(){}

   // When the "Connect testEvent" designer verb shortcut
 menu 
   // command is invoked, this method uses the 
   // IEventBindingService to attach an event handler to a 
   // "textEvent" event of the associated control.
private:
   void ConnectEvent( Object^ /*sender*/, EventArgs^ /*e*/ )
   {
      IEventBindingService^ eventservice = dynamic_cast<IEventBindingService^>(this->Component->Site->GetService(
 System::ComponentModel::Design::IEventBindingService::typeid ));
      if ( eventservice != nullptr )
      {
         // Attempt to obtain a PropertyDescriptor for a 
         // component event named "testEvent".
         EventDescriptorCollection^ edc = TypeDescriptor::GetEvents( this->Component
 );
         if ( edc == nullptr || edc->Count == 0 )
                  return;
         EventDescriptor^ ed = nullptr;

         // Search for an event named "testEvent".
         IEnumerator^ myEnum = edc->GetEnumerator();
         while ( myEnum->MoveNext() )
         {
            EventDescriptor^ edi = safe_cast<EventDescriptor^>(myEnum->Current);
            if ( edi->Name->Equals( "testEvent"
 ) )
            {
               ed = edi;
               break;
            }
         }
         if ( ed == nullptr )
                  return;

         // Use the IEventBindingService to get a 
         // PropertyDescriptor for the event.
         PropertyDescriptor^ pd = eventservice->GetEventProperty( ed );
         if ( pd == nullptr )
                  return;

         // Set the value of the event to "testEventHandler".
         pd->SetValue( this->Component, "testEventHandler"
 );
      }
   }

public:
   property System::ComponentModel::Design::DesignerVerbCollection^ Verbs 
   {
      // Provides a designer verb command for the designer's 
      // shortcut menu.
      [PermissionSetAttribute(SecurityAction::Demand, Name="FullTrust")]
      virtual System::ComponentModel::Design::DesignerVerbCollection^ get()
 override
      {
         DesignerVerbCollection^ dvc = gcnew DesignerVerbCollection;
         dvc->Add( gcnew DesignerVerb( "Connect testEvent",gcnew EventHandler(
 this, &EventDesigner::ConnectEvent ) ) );
         return dvc;
      }
   }
};

// EventControl is associated with the EventDesigner and displays 
// instructions for demonstrating the service.

[Designer(EventDesigner::typeid)]
public ref class EventControl: public
 System::Windows::Forms::UserControl
{
public:
   event System::EventHandler^ testEvent;
   EventControl()
   {
      this->BackColor = Color::White;
      this->Size = System::Drawing::Size( 320, 96 );
   }

public:
   ~EventControl()
   {
   }

protected:
   virtual void OnPaint( System::Windows::Forms::PaintEventArgs^
 e ) override
   {
      e->Graphics->DrawString( "IEventBindingService Example Control",
 gcnew System::Drawing::Font( FontFamily::GenericMonospace,10 ), gcnew SolidBrush(
 Color::Blue ), 5, 5 );
      e->Graphics->DrawString( "Use the \"Connect testEvent\"
 command of the", gcnew System::Drawing::Font( FontFamily::GenericMonospace,8
 ), gcnew SolidBrush( Color::Black ), 5, 22 );
      e->Graphics->DrawString( "right-click shortcut menu provided by
 this", gcnew System::Drawing::Font( FontFamily::GenericMonospace,8
 ), gcnew SolidBrush( Color::Black ), 5, 32 );
      e->Graphics->DrawString( "control's associated EventDesigner to
 create", gcnew System::Drawing::Font( FontFamily::GenericMonospace,8 ), gcnew
 SolidBrush( Color::Black ), 5, 42 );
      e->Graphics->DrawString( "a new event handler
 linked with the testEvent", gcnew System::Drawing::Font( FontFamily::GenericMonospace,8
 ), gcnew SolidBrush( Color::Black ), 5, 52 );
      e->Graphics->DrawString( "of this control in
 the initialization code", gcnew System::Drawing::Font( FontFamily::GenericMonospace,8
 ), gcnew SolidBrush( Color::Black ), 5, 62 );
      e->Graphics->DrawString( "for this
 control.", gcnew System::Drawing::Font( FontFamily::GenericMonospace,8 ),
 gcnew SolidBrush( Color::Black ), 5, 72 );
   }
};
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
IEventBindingService メンバ
System.ComponentModel.Design 名前空間
PropertyDescriptor クラス
EventDescriptor クラス
PropertyDescriptorCollection クラス
EventDescriptorCollection クラス

IEventBindingService メソッド


IEventBindingService メンバ



このページでは「.NET Framework クラス ライブラリ リファレンス」からIEventBindingServiceを検索した結果を表示しています。
Weblioに収録されているすべての辞書からIEventBindingServiceを検索する場合は、下記のリンクをクリックしてください。
 全ての辞書からIEventBindingService を検索

英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「IEventBindingService」の関連用語

IEventBindingServiceのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



IEventBindingServiceのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2025 Microsoft.All rights reserved.

©2025 GRAS Group, Inc.RSS