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

ISelectionService イベント


パブリック イベントパブリック イベント

  名前 説明
パブリック イベント SelectionChanged 現在選択されている対象変更されたときに発生します
パブリック イベント SelectionChanging 現在選択されている対象これから変更されるときに発生します
参照参照

関連項目

ISelectionService インターフェイス
System.ComponentModel.Design 名前空間

ISelectionService インターフェイス

デザイナコンポーネント選択するために必要なインターフェイス提供します

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

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

ISelectionService使用して、SelectionChanged と SelectionChanging の各イベント処理する例を次に示します

Imports System
Imports System.Drawing
Imports System.Collections
Imports System.ComponentModel
Imports System.ComponentModel.Design
Imports System.Windows.Forms
Imports Microsoft.VisualBasic

'  This sample demonstrates using the ISelectionService
'  interface to receive notification of selection change events.  

'  The SelectionComponent control attempts to retrieve an instance 
'  of the ISelectionService when it is sited. If it can, it attaches
 
'  event handlers for events provided by the service that display
'  a message when a component is selected or deselected.
'  To run this sample, add the SelectionComponent control to a Form
 and
'  then select or deselect components in design mode to see the behavior
 
'  of the component change event handlers. 

Namespace ISelectionServiceExample

    Public Class SelectionComponent
        Inherits System.Windows.Forms.UserControl
        Private tbox1 As System.Windows.Forms.TextBox
        Private selectionService As ISelectionService
        

        Public Sub New()
            ' Initialize control
            Me.SuspendLayout()
            Me.Name = "SelectionComponent"
            Me.Size = New System.Drawing.Size(608,
 296)
            Me.tbox1 = New System.Windows.Forms.TextBox()
            Me.tbox1.Location = New System.Drawing.Point(24,
 16)
            Me.tbox1.Name = "listBox1"
            Me.tbox1.Multiline = True
            Me.tbox1.Size = New System.Drawing.Size(560,
 251)
            Me.tbox1.TabIndex = 0
            Me.Controls.Add(Me.tbox1)
            Me.ResumeLayout()
        End Sub 'New

        Public Overrides Property
 Site() As ISite
            Get
                Return MyBase.Site
            End Get
            Set(ByVal Value As
 ISite)
                ' The ISelectionService is available in design mode
 
                ' only, and only after the component is sited.
                If Not (selectionService Is
 Nothing) Then
                    ' Because the selection service has been 
                    ' previously obtained, the component may be in 
                    ' the process of being resited. 
                    ' Detatch the previous selection change event 
                    ' handlers in case the new selection
                    ' service is a new service instance belonging to
 
                    ' another design mode service host.
                    RemoveHandler selectionService.SelectionChanged,
 AddressOf OnSelectionChanged
                    RemoveHandler selectionService.SelectionChanging,
 AddressOf OnSelectionChanging
                End If

                ' Establish the new site for the component.
                MyBase.Site = Value

                If MyBase.Site Is
 Nothing Then
                    Return
                End If

                ' The selection service is not available outside of
 
                ' design mode. A call requesting the service 
                ' using GetService while not in design mode will 
                ' return null.
                selectionService = Me.Site.GetService(GetType(ISelectionService))

                ' If an instance of the ISelectionService was obtained,
 
                ' attach event handlers for the selection 
                ' changing and selection changed events.
                If Not (selectionService Is
 Nothing) Then
                    ' Add an event handler for the SelectionChanging
 and SelectionChanged events.
                    AddHandler selectionService.SelectionChanging,
 AddressOf OnSelectionChanging
                    AddHandler selectionService.SelectionChanged,
 AddressOf OnSelectionChanged
                End If
            End Set
        End Property

        Private Sub OnSelectionChanged(ByVal
 sender As Object, ByVal
 args As EventArgs)            
            tbox1.AppendText("The selected component was changed.
  Selected components:" + Microsoft.VisualBasic.ControlChars.CrLf +
 "    " + GetSelectedComponents() + Microsoft.VisualBasic.ControlChars.CrLf)
        End Sub 'OnSelectionChanged

        Private Sub OnSelectionChanging(ByVal
 sender As Object, ByVal
 args As EventArgs)                        
            tbox1.AppendText("The selected component is changing.
  Selected components:" + Microsoft.VisualBasic.ControlChars.CrLf +
 "    " + GetSelectedComponents() + Microsoft.VisualBasic.ControlChars.CrLf)
        End Sub 'OnSelectionChanging

        Private Function GetSelectedComponents()
 As String
            Dim selectedString As String
 = String.Empty
            Dim components(CType(selectionService.GetSelectedComponents(),
 ICollection).Count - 1) As Object
            CType(selectionService.GetSelectedComponents(), ICollection).CopyTo(components,
 0)

            Dim i As Integer
            For i = 0 To components.Length
 - 1
                If i <> 0 Then
                    selectedString += "&& "
                End If
                If CType(selectionService.PrimarySelection, IComponent)
 Is CType(components(i), IComponent) Then
                    selectedString += "PrimarySelection:"
                End If
                selectedString += CType(components(i), IComponent).Site.Name + "
 "
            Next i

            Return selectedString
        End Function 'GetSelectedComponents

        ' Clean up any resources being used.
        Protected Overloads Overrides
 Sub Dispose(ByVal disposing As
 Boolean)
            ' Detatch the event handlers for the selection service.
            If Not (selectionService Is
 Nothing) Then
                RemoveHandler selectionService.SelectionChanging,
 AddressOf OnSelectionChanging
                RemoveHandler selectionService.SelectionChanged,
 AddressOf OnSelectionChanged
            End If
            MyBase.Dispose(disposing)
        End Sub 'Dispose
    End Class 'SelectionComponent

End Namespace 'ISelectionServiceExample
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Windows.Forms;

/*  This sample demonstrates using the ISelectionService
    interface to receive notification of selection change events.  
    The SelectionComponent control attempts to retrieve an instance 
    of the ISelectionService when it is sited. If it can, it attaches 
    event handlers for events provided by the service that display
    a message when a component is selected or deselected.

    To run this sample, add the SelectionComponent control to
 a Form and
    then select or deselect components in design mode to see the
 behavior 
    of the component change event handlers. */

namespace ISelectionServiceExample 
{
    public class SelectionComponent : System.Windows.Forms.UserControl
 
    {        
        private System.Windows.Forms.TextBox tbox1;
        private ISelectionService selectionService;
        
        public SelectionComponent() 
        {
            // Initialize control
            this.SuspendLayout();            
            this.Name = "SelectionComponent";
            this.Size = new System.Drawing.Size(608,
 296);                                    
            this.tbox1 = new System.Windows.Forms.TextBox();
            
            this.tbox1.Location = new System.Drawing.Point(24,
 16);
            this.tbox1.Name = "listBox1";
            this.tbox1.Multiline = true;
            this.tbox1.Size = new System.Drawing.Size(560,
 251);
            this.tbox1.TabIndex = 0;
            this.Controls.Add(this.tbox1);
            this.ResumeLayout();
        }
        
        public override ISite Site 
        {
            get 
            {
                return base.Site;
            }
            set 
            {
                // The ISelectionService is available in design mode
 
                // only, and only after the component is sited.
                if (selectionService != null)
 
                {
                    // Because the selection service has been 
                    // previously obtained, the component may be in
 
                    // the process of being resited. 
                    // Detatch the previous selection change event 
                    // handlers in case the new selection
                    // service is a new service instance belonging to
 
                    // another design mode service host.
                    selectionService.SelectionChanged -= new EventHandler(OnSelectionChanged);
                    selectionService.SelectionChanging -= new
 EventHandler(OnSelectionChanging);
                }

                // Establish the new site for the component.
                base.Site = value;                

                if( base.Site == null
 )
                    return;

                // The selection service is not available outside of
 
                // design mode. A call requesting the service 
                // using GetService while not in design mode will 
                // return null.
                selectionService = (ISelectionService)this.Site.GetService(typeof(ISelectionService));

                // If an instance of the ISelectionService was obtained,
 
                // attach event handlers for the selection 
                // changing and selection changed events.
                if (selectionService != null)
                {
                    // Add an event handler for the SelectionChanging
 
                    // and SelectionChanged events.
                    selectionService.SelectionChanging += new
 EventHandler(OnSelectionChanging);                    
                    selectionService.SelectionChanged += new EventHandler(OnSelectionChanged);
    
                }
            }
        }
        
        private void OnSelectionChanged(object
 sender, EventArgs args)
        {                        
            tbox1.AppendText("The selected component was changed.  Selected
 components:\r\n    " + GetSelectedComponents() + "\r\n");
        }
        
        private void OnSelectionChanging(object
 sender, EventArgs args)
        {
            tbox1.AppendText("The selected component is changing. Selected components:\r\n
    " + GetSelectedComponents() + "\r\n");            
        }
        
        private string GetSelectedComponents()
        {
            string selectedString = String.Empty;
            object[] components = new object[((ICollection)selectionService.GetSelectedComponents()).Count];
            ((ICollection)selectionService.GetSelectedComponents()).CopyTo(components,
 0);

            for(int i=0; i<components.Length;
 i++)
            {
                if( i != 0 )
                    selectedString += "&& ";
                if( ((IComponent)selectionService.PrimarySelection)
 == ((IComponent)components[i]) )
                    selectedString += "PrimarySelection:";            
    
                selectedString += ((IComponent)components[i]).Site.Name+" ";
            }
            return selectedString;
        }
        
        // Clean up any resources being used.
        protected override void Dispose( bool
 disposing )
        {
            // Detatch the event handlers for the selection service.
            if( selectionService != null )
            {
                selectionService.SelectionChanging -= new EventHandler(this.OnSelectionChanging);
                selectionService.SelectionChanged -= new EventHandler(this.OnSelectionChanged);
            }

            base.Dispose( disposing );
        }
    }
}
#using <System.Windows.Forms.dll>
#using <System.dll>
#using <System.Drawing.dll>

using namespace System;
using namespace System::Drawing;
using namespace System::Collections;
using namespace System::ComponentModel;
using namespace System::ComponentModel::Design;
using namespace System::Windows::Forms;

/*  This sample demonstrates using the ISelectionService
interface to receive notification of selection change events.  
The SelectionComponent control attempts to retrieve an instance 
of the ISelectionService when it is sited. If it can, it attaches 
event handlers for events provided by the service that display
a message when a component is selected or deselected.

To run this sample, add the SelectionComponent control to a Form
 and
then select or deselect components in design mode to see the behavior
 
of the component change event handlers. */
namespace ISelectionServiceExample
{
   public ref class SelectionComponent: public
 System::Windows::Forms::UserControl
   {
   private:
      System::Windows::Forms::TextBox^ tbox1;
      ISelectionService^ selectionService;

   public:
      SelectionComponent()
      {
         // Initialize control
         this->SuspendLayout();
         this->Name = "SelectionComponent";
         this->Size = System::Drawing::Size( 608, 296 );
         this->tbox1 = gcnew System::Windows::Forms::TextBox;
         this->tbox1->Location = System::Drawing::Point(
 24, 16 );
         this->tbox1->Name = "listBox1";
         this->tbox1->Multiline = true;
         this->tbox1->Size = System::Drawing::Size( 560,
 251 );
         this->tbox1->TabIndex = 0;
         this->Controls->Add( this->tbox1
 );
         this->ResumeLayout();
      }

      property ISite^ Site 
      {
         virtual ISite^ get() override
         {
            return __super::Site;
         }

         virtual void set( ISite^ value ) override
         {
            // The ISelectionService is available in design mode 
            // only, and only after the component is sited.
            if ( selectionService != nullptr )
            {
               // Because the selection service has been 
               // previously obtained, the component may be in 
               // the process of being resited. 
               // Detatch the previous selection change event 
               // handlers in case the new selection
               // service is a new service instance belonging to 
               // another design mode service host.
               selectionService->SelectionChanged -= gcnew EventHandler( this,
 &SelectionComponent::OnSelectionChanged );
               selectionService->SelectionChanging -= gcnew EventHandler( this,
 &SelectionComponent::OnSelectionChanging );
            }

            // Establish the new site for the component.
            __super::Site = value;
            if ( __super::Site == nullptr )
                        return;

            // The selection service is not available outside of 
            // design mode. A call requesting the service 
            // using GetService while not in design mode will 
            // return null.
            selectionService = dynamic_cast<ISelectionService^>(this->Site->GetService(
 ISelectionService::typeid ));

            // If an instance of the ISelectionService was obtained,
 
            // attach event handlers for the selection 
            // changing and selection changed events.
            if ( selectionService != nullptr )
            {
               // Add an event handler for the SelectionChanging 
               // and SelectionChanged events.
               selectionService->SelectionChanging += gcnew EventHandler( this,
 &SelectionComponent::OnSelectionChanging );
               selectionService->SelectionChanged += gcnew EventHandler( this,
 &SelectionComponent::OnSelectionChanged );
            }
         }
      }

   private:
      void OnSelectionChanged( Object^ /*sender*/, EventArgs^
 /*args*/ )
      {
         tbox1->AppendText( String::Format( "The selected component was changed.
  Selected components:\r\n    {0}\r\n", GetSelectedComponents() ) );
      }

      void OnSelectionChanging( Object^ /*sender*/, EventArgs^
 /*args*/ )
      {
         tbox1->AppendText( String::Format( "The selected component is changing.
 Selected components:\r\n    {0}\r\n", GetSelectedComponents() ) );
      }

      String^ GetSelectedComponents()
      {
         String^ selectedString = String::Empty;
         array<Object^>^components = gcnew array<Object^>((dynamic_cast<ICollection^>(selectionService->GetSelectedComponents()))->Count);
         (dynamic_cast<ICollection^>(selectionService->GetSelectedComponents()))->CopyTo(
 components, 0 );
         for ( int i = 0; i < components->Length;
 i++ )
         {
            if ( i != 0 )
                        selectedString = selectedString + "&& ";

            if ( (dynamic_cast<IComponent^>(selectionService->PrimarySelection))
 == (dynamic_cast<IComponent^>(components[ i ])) )
                        selectedString = selectedString + "PrimarySelection:";

            selectedString = selectedString + (dynamic_cast<IComponent^>(components[
 i ]))->Site->Name + " ";

         }
         return selectedString;
      }

      // Clean up any resources being used.
   public:
      ~SelectionComponent()
      {
         // Detach the event handlers for the selection service.
         if ( selectionService != nullptr )
         {
            selectionService->SelectionChanging -= gcnew EventHandler( this,
 &SelectionComponent::OnSelectionChanging );
            selectionService->SelectionChanged -= gcnew EventHandler( this,
 &SelectionComponent::OnSelectionChanged );
         }
      }
   };
}
package ISelectionServiceExample;
 
import System.*;
import System.Drawing.*;
import System.Collections.*;
import System.ComponentModel.*;
import System.ComponentModel.Design.*;
import System.Windows.Forms.*;

/*  This sample demonstrates using the ISelectionService
    interface to receive notification of selection change events.  
    The SelectionComponent control attempts to retrieve an instance 
    of the ISelectionService when it is sited. If it can, it attaches 
    event handlers for events provided by the service that display
    a message when a component is selected or deselected.

    To run this sample, add the SelectionComponent control to
 a Form and
    then select or deselect components in design mode to see the
 behavior 
    of the component change event handlers. 
 */
public class SelectionComponent extends System.Windows.Forms.UserControl
{    
    private System.Windows.Forms.TextBox tbox1;
    private ISelectionService selectionService;

    public SelectionComponent()
    {
        // Initialize control
        this.SuspendLayout();
        this.set_Name("SelectionComponent");
        this.set_Size(new System.Drawing.Size(608,
 296));
        this.tbox1 = new System.Windows.Forms.TextBox();
        this.tbox1.set_Location(new System.Drawing.Point(24,
 16));
        this.tbox1.set_Name("listBox1");
        this.tbox1.set_Multiline(true);
        this.tbox1.set_Size(new System.Drawing.Size(560,
 251));
        this.tbox1.set_TabIndex(0);
        this.get_Controls().Add(this.tbox1);
        this.ResumeLayout();
    } //SelectionComponent

    /** @property 
     */
    public ISite get_Site()
    {
        return super.get_Site();
    } //get_Site

    /** @property
     */
    public void set_Site(ISite value)
    {
        // The ISelectionService is available in design mode 
        // only, and only after the component is sited.
        if (selectionService != null) {
            // Because the selection service has been 
            // previously obtained, the component may be in 
            // the process of being resited. 
            // Detatch the previous selection change event 
            // handlers in case the new selection
            // service is a new service instance belonging to 
            // another design mode service host.
            selectionService.remove_SelectionChanged(
                new EventHandler(OnSelectionChanged));
            selectionService.remove_SelectionChanging(
                new EventHandler(OnSelectionChanging));
        }
        // Establish the new site for the component.
        super.set_Site(value);
        if (super.get_Site() == null) {
            return;
        }
        // The selection service is not available outside of 
        // design mode. A call requesting the service 
        // using GetService while not in design mode will 
        // return null.
        selectionService = ((ISelectionService)(
            this.get_Site().GetService(ISelectionService.class.ToType())));

        // If an instance of the ISelectionService was obtained, 
        // attach event handlers for the selection 
        // changing and selection changed events.
        if (selectionService != null) {
            // Add an event handler for the SelectionChanging 
            // and SelectionChanged events.
            selectionService.add_SelectionChanging(
                new EventHandler(OnSelectionChanging));
            selectionService.add_SelectionChanged(
                new EventHandler(OnSelectionChanged));
        }
    } //set_Site

    private void OnSelectionChanged(Object
 sender, EventArgs args)
    {
        tbox1.AppendText("The selected component was changed.  Selected"
            + " components:\r\n    " + GetSelectedComponents() + "\r\n");
    } //OnSelectionChanged

    private void OnSelectionChanging(Object
 sender, EventArgs args)
    {
        tbox1.AppendText("The selected component is changing. Selected"
            + " components:\r\n    " + GetSelectedComponents() + "\r\n");
    } //OnSelectionChanging

    private String GetSelectedComponents()
    {
        String selectedString = "";
        Object components[] = new Object[((ICollection)(
            selectionService.GetSelectedComponents())).get_Count()];
        ((ICollection)(selectionService.GetSelectedComponents())).
            CopyTo(components, 0);
        for (int i = 0; i < components.length;
 i++) {
            if (i != 0) {
                selectedString += "&& ";
            }
            if (((IComponent)(selectionService.get_PrimarySelection())).Equals(
 
                (IComponent)(components.get_Item(i)))) {
                selectedString += "PrimarySelection:";
            }
            selectedString += ((IComponent)(components.get_Item(i))).
                get_Site().get_Name() + " ";
        }
        return selectedString;
    } //GetSelectedComponents

    // Clean up any resources being used.
    protected void Dispose(boolean disposing)
    {
        // Detatch the event handlers for the selection service.
        if (selectionService != null) {
            selectionService.remove_SelectionChanging(
                new EventHandler(this.OnSelectionChanging));
            selectionService.remove_SelectionChanged(
                new EventHandler(this.OnSelectionChanged));
        }
        super.Dispose(disposing);
    } //Dispose
} //SelectionComponent
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
ISelectionService メンバ
System.ComponentModel.Design 名前空間

ISelectionService プロパティ


パブリック プロパティパブリック プロパティ

  名前 説明
パブリック プロパティ PrimarySelection 現在の主要選択オブジェクトであるオブジェクト取得します
パブリック プロパティ SelectionCount 選択されているオブジェクトの数を取得します
参照参照

関連項目

ISelectionService インターフェイス
System.ComponentModel.Design 名前空間

ISelectionService メソッド


パブリック メソッドパブリック メソッド

  名前 説明
パブリック メソッド GetComponentSelected 指定したコンポーネントが現在選択されているかどうかを示す値を取得します
パブリック メソッド GetSelectedComponents 現在選択されているコンポーネントコレクション取得します
パブリック メソッド SetSelectedComponents オーバーロードされます指定したコンポーネント選択します
参照参照

関連項目

ISelectionService インターフェイス
System.ComponentModel.Design 名前空間

ISelectionService メンバ

デザイナコンポーネント選択するために必要なインターフェイス提供します

ISelectionService データ型公開されるメンバを以下の表に示します


パブリック プロパティパブリック プロパティ
  名前 説明
パブリック プロパティ PrimarySelection 現在の主要選択オブジェクトであるオブジェクト取得します
パブリック プロパティ SelectionCount 選択されているオブジェクトの数を取得します
パブリック メソッドパブリック メソッド
  名前 説明
パブリック メソッド GetComponentSelected 指定したコンポーネントが現在選択されているかどうかを示す値を取得します
パブリック メソッド GetSelectedComponents 現在選択されているコンポーネントコレクション取得します
パブリック メソッド SetSelectedComponents オーバーロードされます指定したコンポーネント選択します
パブリック イベントパブリック イベント
  名前 説明
パブリック イベント SelectionChanged 現在選択されている対象変更されたときに発生します
パブリック イベント SelectionChanging 現在選択されている対象これから変更されるときに発生します
参照参照

関連項目

ISelectionService インターフェイス
System.ComponentModel.Design 名前空間



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

辞書ショートカット

すべての辞書の索引

「ISelectionService」の関連用語

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

   

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



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

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

©2025 GRAS Group, Inc.RSS