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

IWindowsFormsEditorService インターフェイス

UITypeEditor にインターフェイス提供してWindows フォーム表示したり、デザイン モードプロパティ グリッド コントロールからドロップダウン領域コントロール表示したりします

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

Public Interface IWindowsFormsEditorService
Dim instance As IWindowsFormsEditorService
public interface IWindowsFormsEditorService
public interface class IWindowsFormsEditorService
public interface IWindowsFormsEditorService
public interface IWindowsFormsEditorService
解説解説

IWindowsFormsEditorService は、PropertyGrid コントロールの GetService メソッド通じてだけ使用できます

このサービスは、通常UITypeEditor の EditValue メソッドからフォーム表示するために使用されます。PropertyGridUITypeEditorEditValue メソッド呼び出してプロパティの値を編集するためのユーザー インターフェイス提供する場合EditValue メソッドには、通常 IWindowsFormsEditorServiceインスタンス提供する IServiceProvider への参照渡されます。このサービスメソッド使用することによって、ダイアログ ボックスフォーム表示したり、ドロップダウン コンテナ内の Control表示できます。このコンテナは、編集中の値を持つ値フィールド領域に近いプロパティ グリッドの上表示されます。

使用例使用例

IWindowsFormsEditorService使用してユーザー入力用の Form表示する UITypeEditor の例を次に示します

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

' Example UITypeEditor that uses the IWindowsFormsEditorService 
' to display a Form.
<System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.Demand,
 Name:="FullTrust")> Public
 Class TestDialogEditor
   Inherits System.Drawing.Design.UITypeEditor
   
   Public Sub New()
    End Sub

    Public Overloads Overrides
 Function GetEditStyle(ByVal context As
 System.ComponentModel.ITypeDescriptorContext) As System.Drawing.Design.UITypeEditorEditStyle
        ' Indicates that this editor can display a Form-based interface.
        Return UITypeEditorEditStyle.Modal
    End Function

    Public Overloads Overrides
 Function EditValue(ByVal context As
 System.ComponentModel.ITypeDescriptorContext, ByVal provider As System.IServiceProvider, ByVal value As
 Object) As Object

        ' Attempts to obtain an IWindowsFormsEditorService.
        Dim edSvc As IWindowsFormsEditorService
 = CType(provider.GetService(GetType(IWindowsFormsEditorService)),
 IWindowsFormsEditorService)
        If edSvc Is Nothing
 Then
            Return Nothing
        End If

        ' Displays a StringInputDialog Form to get a user-adjustable
 
        ' string value.
        Dim form As New
 StringInputDialog(CStr(value))
        If edSvc.ShowDialog(form) = DialogResult.OK Then
            Return form.inputTextBox.Text
        End If

        ' If OK was not pressed, return the original value
        Return value

    End Function
End Class

' Example Form for entering a string.
Friend Class StringInputDialog
    Inherits System.Windows.Forms.Form

    Private ok_button As System.Windows.Forms.Button
    Private cancel_button As System.Windows.Forms.Button
    Public inputTextBox As System.Windows.Forms.TextBox

    Public Sub New(ByVal
 [text] As String)
        InitializeComponent()
        inputTextBox.Text = [text]
    End Sub

    Private Sub InitializeComponent()
        Me.ok_button = New System.Windows.Forms.Button()
        Me.cancel_button = New System.Windows.Forms.Button()
        Me.inputTextBox = New System.Windows.Forms.TextBox()
        Me.SuspendLayout()
        Me.ok_button.Anchor = System.Windows.Forms.AnchorStyles.Bottom
 Or System.Windows.Forms.AnchorStyles.Right
        Me.ok_button.Location = New System.Drawing.Point(180,
 43)
        Me.ok_button.Name = "ok_button"
        Me.ok_button.TabIndex = 1
        Me.ok_button.Text = "OK"
        Me.ok_button.DialogResult = System.Windows.Forms.DialogResult.OK
        Me.cancel_button.Anchor = System.Windows.Forms.AnchorStyles.Bottom
 Or System.Windows.Forms.AnchorStyles.Right
        Me.cancel_button.Location = New System.Drawing.Point(260,
 43)
        Me.cancel_button.Name = "cancel_button"
        Me.cancel_button.TabIndex = 2
        Me.cancel_button.Text = "Cancel"
        Me.cancel_button.DialogResult = System.Windows.Forms.DialogResult.Cancel
        Me.inputTextBox.Location = New System.Drawing.Point(6,
 9)
        Me.inputTextBox.Name = "inputTextBox"
        Me.inputTextBox.Size = New System.Drawing.Size(327,
 20)
        Me.inputTextBox.TabIndex = 0
        Me.inputTextBox.Text = ""
        Me.inputTextBox.Anchor = System.Windows.Forms.AnchorStyles.Top
 Or System.Windows.Forms.AnchorStyles.Left Or
 System.Windows.Forms.AnchorStyles.Right
        Me.ClientSize = New System.Drawing.Size(342,
 73)
        Me.Controls.AddRange(New System.Windows.Forms.Control()
 {Me.inputTextBox, Me.cancel_button, Me.ok_button})
        Me.MinimumSize = New System.Drawing.Size(350,
 100)
        Me.Name = "StringInputDialog"
        Me.Text = "String Input Dialog"
        Me.ResumeLayout(False)
    End Sub

End Class

' Provides an example control that displays instructions in design mode
,
' with which the example UITypeEditor is associated.
Public Class WinFormsEdServiceDialogExampleControl
    Inherits UserControl

    <EditorAttribute(GetType(TestDialogEditor), GetType(UITypeEditor))>
 _
    Public Property TestDialogString() As
 String
        Get
            Return localDialogTestString
        End Get
        Set(ByVal Value As
 String)
            localDialogTestString = Value
        End Set
    End Property
    Private localDialogTestString As String

    Public Sub New()
        localDialogTestString = "Test String"
        Me.Size = New Size(210, 74)
        Me.BackColor = Color.Beige
    End Sub

    Protected Overrides Sub
 OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
        If Me.DesignMode Then
            e.Graphics.DrawString("Use the Properties window to
 show", New Font("Arial",
 8), New SolidBrush(Color.Black), 5, 5)
            e.Graphics.DrawString("a Form dialog box, using the",
 New Font("Arial", 8), New
 SolidBrush(Color.Black), 5, 17)
            e.Graphics.DrawString("IWindowsFormsEditorService,
 for", New Font("Arial",
 8), New SolidBrush(Color.Black), 5, 29)
            e.Graphics.DrawString("configuring this control's",
 New Font("Arial", 8), New SolidBrush(Color.Black), 5, 41)
            e.Graphics.DrawString("TestDialogString property.",
 New Font("Arial", 8), New
 SolidBrush(Color.Black), 5, 53)
        Else
            e.Graphics.DrawString("This example requires design
 mode.", New Font("Arial",
 8), New SolidBrush(Color.Black), 5, 5)
        End If
    End Sub

End Class
using System;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Drawing;
using System.Drawing.Design;
using System.Windows.Forms;
using System.Windows.Forms.Design;

namespace IWindowsFormsEditorServiceExample
{    
    // Example UITypeEditor that uses the IWindowsFormsEditorService
 
    // to display a Form.
    [System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand,
 Name="FullTrust")] 
    public class TestDialogEditor : System.Drawing.Design.UITypeEditor
    {
        public TestDialogEditor()
        {
        }

        public override System.Drawing.Design.UITypeEditorEditStyle
 GetEditStyle(System.ComponentModel.ITypeDescriptorContext context)
        {
            // Indicates that this editor can display a Form-based interface.
            return UITypeEditorEditStyle.Modal;
        }

        public override object EditValue(System.ComponentModel.ITypeDescriptorContext
 context, System.IServiceProvider provider, object value)
        {
            // Attempts to obtain an IWindowsFormsEditorService.
            IWindowsFormsEditorService edSvc = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
            if( edSvc == null )
                return null;         
            
            // Displays a StringInputDialog Form to get a user-adjustable
 
            // string value.
            StringInputDialog form = new StringInputDialog((string)value);
            if( edSvc.ShowDialog(form) == DialogResult.OK )
                return form.inputTextBox.Text;

            // If OK was not pressed, return the original value
            return value;
        }        
    }

    // Example Form for entering a string.
    internal class StringInputDialog : System.Windows.Forms.Form
    {
        private System.Windows.Forms.Button ok_button;
        private System.Windows.Forms.Button cancel_button;
        public System.Windows.Forms.TextBox inputTextBox;

        public StringInputDialog(string text)
        {
            InitializeComponent();
            inputTextBox.Text = text;
        }

        private void InitializeComponent()
        {
            this.ok_button = new System.Windows.Forms.Button();
            this.cancel_button = new System.Windows.Forms.Button();
            this.inputTextBox = new System.Windows.Forms.TextBox();
            this.SuspendLayout();
            this.ok_button.Anchor = (System.Windows.Forms.AnchorStyles.Bottom
 | System.Windows.Forms.AnchorStyles.Right);
            this.ok_button.Location = new System.Drawing.Point(180,
 43);
            this.ok_button.Name = "ok_button";
            this.ok_button.TabIndex = 1;
            this.ok_button.Text = "OK";      
            this.ok_button.DialogResult = System.Windows.Forms.DialogResult.OK;
            
            this.cancel_button.Anchor = (System.Windows.Forms.AnchorStyles.Bottom
 | System.Windows.Forms.AnchorStyles.Right);
            this.cancel_button.Location = new
 System.Drawing.Point(260, 43);
            this.cancel_button.Name = "cancel_button";
            this.cancel_button.TabIndex = 2;
            this.cancel_button.Text = "Cancel";    
        
            this.cancel_button.DialogResult = System.Windows.Forms.DialogResult.Cancel;
            this.inputTextBox.Location = new
 System.Drawing.Point(6, 9);
            this.inputTextBox.Name = "inputTextBox";
            this.inputTextBox.Size = new System.Drawing.Size(327,
 20);
            this.inputTextBox.TabIndex = 0;
            this.inputTextBox.Text = "";           
 
            this.inputTextBox.Anchor = ((System.Windows.Forms.AnchorStyles.Top
 | System.Windows.Forms.AnchorStyles.Left) 
                | System.Windows.Forms.AnchorStyles.Right);
            this.ClientSize = new System.Drawing.Size(342,
 73);
            this.Controls.AddRange(new System.Windows.Forms.Control[]
 {
                                                                          this.inputTextBox
,
                                                                          this.cancel_button
,
                                                                          this.ok_button});
            this.MinimumSize = new System.Drawing.Size(350,
 100);
            this.Name = "StringInputDialog";
            this.Text = "String Input Dialog";
            this.ResumeLayout(false);
        }        
    }

    // Provides an example control that displays instructions in design
 mode,
    // with which the example UITypeEditor is associated.
    public class WinFormsEdServiceDialogExampleControl
 : UserControl
    {
        [EditorAttribute(typeof(TestDialogEditor), typeof(UITypeEditor))]
        public string TestDialogString
        {
            get
            {
                return localDialogTestString;
            }
            set
            {
                localDialogTestString = value;
            }
        }
        private string localDialogTestString;
      
        public WinFormsEdServiceDialogExampleControl()
        {
            localDialogTestString = "Test String"; 
            this.Size = new Size(210, 74);
            this.BackColor = Color.Beige;
        }

        protected override void OnPaint(System.Windows.Forms.PaintEventArgs
 e)
        {
            if( this.DesignMode )
            {
                e.Graphics.DrawString("Use the Properties window to show",
 new Font("Arial", 8), new SolidBrush(Color.Black),
 5, 5);
                e.Graphics.DrawString("a Form dialog box, using
 the", new Font("Arial", 8), new
 SolidBrush(Color.Black), 5, 17);
                e.Graphics.DrawString("IWindowsFormsEditorService, for",
 new Font("Arial", 8), new SolidBrush(Color.Black),
 5, 29);
                e.Graphics.DrawString("configuring this control's",
 new Font("Arial", 8), new SolidBrush(Color.Black),
 5, 41);
                e.Graphics.DrawString("TestDialogString property.", new
 Font("Arial", 8), new SolidBrush(Color.Black), 5,
 53);
            }
            else
            {
                e.Graphics.DrawString("This example requires design mode.",
 new Font("Arial", 8), new SolidBrush(Color.Black),
 5, 5);
            }
        }
    }
}
#using <System.Windows.Forms.dll>
#using <System.Drawing.dll>
#using <System.dll>

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

namespace IWindowsFormsEditorServiceExample
{
   // Example Form for entering a string.
   private ref class StringInputDialog: public
 System::Windows::Forms::Form
   {
   private:
      System::Windows::Forms::Button^ ok_button;
      System::Windows::Forms::Button^ cancel_button;

   public:
      System::Windows::Forms::TextBox^ inputTextBox;
      StringInputDialog( String^ text )
      {
         InitializeComponent();
         inputTextBox->Text = text;
      }

   private:
      void InitializeComponent()
      {
         this->ok_button = gcnew System::Windows::Forms::Button;
         this->cancel_button = gcnew System::Windows::Forms::Button;
         this->inputTextBox = gcnew System::Windows::Forms::TextBox;
         this->SuspendLayout();
         this->ok_button->Anchor = static_cast<AnchorStyles>(System::Windows::Forms::AnchorStyles::Bottom
 | System::Windows::Forms::AnchorStyles::Right);
         this->ok_button->Location = System::Drawing::Point(
 180, 43 );
         this->ok_button->Name = "ok_button";
         this->ok_button->TabIndex = 1;
         this->ok_button->Text = "OK";
         this->ok_button->DialogResult = System::Windows::Forms::DialogResult::OK;
         this->cancel_button->Anchor = static_cast<AnchorStyles>(System::Windows::Forms::AnchorStyles::Bottom
 | System::Windows::Forms::AnchorStyles::Right);
         this->cancel_button->Location = System::Drawing::Point(
 260, 43 );
         this->cancel_button->Name = "cancel_button";
         this->cancel_button->TabIndex = 2;
         this->cancel_button->Text = "Cancel";
         this->cancel_button->DialogResult = System::Windows::Forms::DialogResult::Cancel;
         this->inputTextBox->Location = System::Drawing::Point(
 6, 9 );
         this->inputTextBox->Name = "inputTextBox";
         this->inputTextBox->Size = System::Drawing::Size(
 327, 20 );
         this->inputTextBox->TabIndex = 0;
         this->inputTextBox->Text = "";
         this->inputTextBox->Anchor = static_cast<AnchorStyles>(System::Windows::Forms::AnchorStyles::Top
 | System::Windows::Forms::AnchorStyles::Left | System::Windows::Forms::AnchorStyles::Right);
         this->ClientSize = System::Drawing::Size( 342, 73
 );
         array<System::Windows::Forms::Control^>^temp0 = {this->inputTextBox
,this->cancel_button,this->ok_button};
         this->Controls->AddRange( temp0 );
         this->MinimumSize = System::Drawing::Size( 350, 100
 );
         this->Name = "StringInputDialog";
         this->Text = "String Input Dialog";
         this->ResumeLayout( false );
      }
   };

   // Example UITypeEditor that uses the IWindowsFormsEditorService
   // to display a Form.
   [PermissionSet(SecurityAction::Demand, Name = "FullTrust")]
   public ref class TestDialogEditor: public
 System::Drawing::Design::UITypeEditor
   {
   public:
      TestDialogEditor(){}

      virtual System::Drawing::Design::UITypeEditorEditStyle GetEditStyle( System::ComponentModel::ITypeDescriptorContext^
 context ) override
      {
         // Indicates that this editor can display a Form-based interface.
         return UITypeEditorEditStyle::Modal;
      }

      virtual Object^ EditValue( System::ComponentModel::ITypeDescriptorContext^
 context, System::IServiceProvider^ provider, Object^ value ) override
      {
         // Attempts to obtain an IWindowsFormsEditorService.
         IWindowsFormsEditorService^ edSvc = dynamic_cast<IWindowsFormsEditorService^>(provider->GetService(
 IWindowsFormsEditorService::typeid ));
         if ( edSvc == nullptr )
                  return nullptr;
         
         // Displays a StringInputDialog Form to get a user-adjustable
         // string value.
         StringInputDialog^ form = gcnew StringInputDialog( dynamic_cast<String^>(value)
 );
         if ( edSvc->ShowDialog( form ) == DialogResult::OK
 )
                  return form->inputTextBox->Text;

         // If OK was not pressed, return the original value
         return value;
      }
   };

   // Provides an example control that displays instructions in design
 mode,
   // with which the example UITypeEditor is associated.
   public ref class WinFormsEdServiceDialogExampleControl:
 public UserControl
   {
   public:

      property String^ TestDialogString 
      {
         [EditorAttribute(IWindowsFormsEditorServiceExample::TestDialogEditor::typeid
,UITypeEditor::typeid)]
         String^ get()
         {
            return localDialogTestString;
         }

         void set( String^ value )
         {
            localDialogTestString = value;
         }
      }

   private:
      String^ localDialogTestString;

   public:
      WinFormsEdServiceDialogExampleControl()
      {
         localDialogTestString = "Test String";
         this->Size = System::Drawing::Size( 210, 74 );
         this->BackColor = Color::Beige;
      }

   protected:
      virtual void OnPaint( System::Windows::Forms::PaintEventArgs^
 e ) override
      {
         if ( this->DesignMode )
         {
            e->Graphics->DrawString( "Use the Properties window to show",
 gcnew System::Drawing::Font( "Arial",8 ), gcnew SolidBrush( Color::Black
 ), 5, 5 );
            e->Graphics->DrawString( "a Form dialog box, using
 the", gcnew System::Drawing::Font( "Arial",8 ), gcnew SolidBrush(
 Color::Black ), 5, 17 );
            e->Graphics->DrawString( "IWindowsFormsEditorService, for",
 gcnew System::Drawing::Font( "Arial",8 ), gcnew SolidBrush( Color::Black
 ), 5, 29 );
            e->Graphics->DrawString( "configuring this
 control's", gcnew System::Drawing::Font( "Arial",8 ), gcnew SolidBrush(
 Color::Black ), 5, 41 );
            e->Graphics->DrawString( "TestDialogString property.",
 gcnew System::Drawing::Font( "Arial",8 ), gcnew SolidBrush( Color::Black
 ), 5, 53 );
         }
         else
         {
            e->Graphics->DrawString( "This example requires design mode.",
 gcnew System::Drawing::Font( "Arial",8 ), gcnew SolidBrush( Color::Black
 ), 5, 5 );
         }
      }
   };
}
package IWindowsFormsEditorServiceExample; 

import System.*;
import System.ComponentModel.*;
import System.ComponentModel.Design.*;
import System.Drawing.*;
import System.Drawing.Design.*;
import System.Windows.Forms.*;
import System.Windows.Forms.Design.*;

// Example UITypeEditor that uses the IWindowsFormsEditorService 
// to display a Form.
/** @attribute System.Security.Permissions.PermissionSet(System.Security.
    Permissions.SecurityAction.Demand, Name = "FullTrust")
 */
public class TestDialogEditor extends System.Drawing.Design.UITypeEditor
{
    public TestDialogEditor()
    {
    } //TestDialogEditor

    public System.Drawing.Design.UITypeEditorEditStyle GetEditStyle(System.
        ComponentModel.ITypeDescriptorContext context)
    {
        // Indicates that this editor can display a Form-based interface.
        return UITypeEditorEditStyle.Modal;
    } //GetEditStyle

    public Object EditValue(System.ComponentModel.
        ITypeDescriptorContext context, System.IServiceProvider provider,
        Object value)
    {
        // Attempts to obtain an IWindowsFormsEditorService.
        IWindowsFormsEditorService edSvc = (IWindowsFormsEditorService)provider.
            GetService(IWindowsFormsEditorService.class.ToType());
        if (edSvc.Equals(null)) {
            return null;
        }
        // Displays a StringInputDialog Form to get a user-adjustable
 
        // string value.
        StringInputDialog form = new StringInputDialog((String)value);
        if ((edSvc.ShowDialog(form)).Equals(DialogResult.OK))
 {
            return form.inputTextBox.get_Text();
        }
        // If OK was not pressed, return the original value
        return value;
    } //EditValue
} //TestDialogEditor

// Example Form for entering a string.
class StringInputDialog extends System.Windows.Forms.Form
{
    private System.Windows.Forms.Button okButton;
    private System.Windows.Forms.Button cancelButton;
    public System.Windows.Forms.TextBox inputTextBox;
    public StringInputDialog(String text)
    {
        InitializeComponent();
        inputTextBox.set_Text(text);
    } //StringInputDialog

    private void InitializeComponent()
    {
        this.okButton = new System.Windows.Forms.Button();
        this.cancelButton = new System.Windows.Forms.Button();
        this.inputTextBox = new System.Windows.Forms.TextBox();
        this.SuspendLayout();
        this.okButton.set_Anchor(System.Windows.Forms.AnchorStyles.Bottom
 
            | System.Windows.Forms.AnchorStyles.Right);
        this.okButton.set_Location(new System.Drawing.Point(180,
 43));
        this.okButton.set_Name("ok_Button");
        this.okButton.set_TabIndex(1);
        this.okButton.set_Text("OK");
        this.okButton.set_DialogResult(System.Windows.Forms.DialogResult.OK);
        this.cancelButton.set_Anchor(System.Windows.Forms.AnchorStyles.Bottom
 
            | System.Windows.Forms.AnchorStyles.Right);
        this.cancelButton.set_Location(new
 System.Drawing.Point(260, 43));
        this.cancelButton.set_Name("cancel_Button");
        this.cancelButton.set_TabIndex(2);
        this.cancelButton.set_Text("Cancel");
        this.cancelButton.set_DialogResult(System.Windows.Forms.DialogResult.
            Cancel);
        this.inputTextBox.set_Location(new
 System.Drawing.Point(6, 9));
        this.inputTextBox.set_Name("inputTextBox");
        this.inputTextBox.set_Size(new System.Drawing.Size(327,
 20));
        this.inputTextBox.set_TabIndex(0);
        this.inputTextBox.set_Text("");
        this.inputTextBox.set_Anchor(System.Windows.Forms.AnchorStyles.Top
 |
            System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.
            AnchorStyles.Right);
        this.set_ClientSize(new System.Drawing.Size(342,
 73));
        this.get_Controls().AddRange(new System.Windows.Forms.Control[]
 { this.
            inputTextBox, this.cancelButton, this.okButton
 });
        this.set_MinimumSize(new System.Drawing.Size(350,
 100));
        this.set_Name("StringInputDialog");
        this.set_Text("String Input Dialog");
        this.ResumeLayout(false);
    } //InitializeComponent
} //StringInputDialog

// Provides an example control that displays instructions in design
 mode,
// with which the example UITypeEditor is associated.
public class WinFormsEdServiceDialogExampleControl
 extends UserControl
{
    /** @attribute EditorAttribute(TestDialogEditor.class, UITypeEditor.class)
     */
    /** @property 
     */
    public String get_TestDialogString()
    {
        return localDialogTestString;
    } //get_TestDialogString

    /** @property 
     */
    public void set_TestDialogString(String
 value)
    {
        localDialogTestString = value;
    } //set_TestDialogString

    private String localDialogTestString;

    public WinFormsEdServiceDialogExampleControl()
    {
        localDialogTestString = "Test String";
        this.set_Size(new Size(210, 74));
        this.set_BackColor(Color.get_Beige());
    } //WinFormsEdServiceDialogExampleControl

    protected void OnPaint(System.Windows.Forms.PaintEventArgs
 e)
    {
        if (this.get_DesignMode()) {
            e.get_Graphics().DrawString("Use the Properties window to show",
 
                new Font("Arial", 8), new
 SolidBrush(Color.get_Black()), 5, 5);
            e.get_Graphics().DrawString("a Form dialog box, using
 the", 
                new Font("Arial", 8), new
 SolidBrush(Color.get_Black()), 5, 17);
            e.get_Graphics().DrawString("IWindowsFormsEditorService, for"
,
                new Font("Arial", 8), new
 SolidBrush(Color.get_Black()), 5, 29);
            e.get_Graphics().DrawString("configuring this
 control's", 
                new Font("Arial", 8), new
 SolidBrush(Color.get_Black()), 5, 41);
            e.get_Graphics().DrawString("TestDialogString property.", 
                new Font("Arial", 8), new
 SolidBrush(Color.get_Black()), 5, 53);
        }
        else {
            e.get_Graphics().DrawString("This example requires design mode.",
 
                new Font("Arial", 8), new
 SolidBrush(Color.get_Black()), 5, 5);
        }
    } //OnPaint
} //WinFormsEdServiceDialogExampleControl

IWindowsFormsEditorService使用してユーザー入力用のドロップダウン UserControl表示する UITypeEditor の例を次に示します

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

' Example UITypeEditor that uses the IWindowsFormsEditorService to 
' display a drop-down control.
<System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.Demand,
 Name:="FullTrust")> _
Public Class TestDropDownEditor
   Inherits System.Drawing.Design.UITypeEditor
   
   Public Sub New()
    End Sub
   
    Public Overloads Overrides
 Function GetEditStyle(ByVal context As
 System.ComponentModel.ITypeDescriptorContext) As System.Drawing.Design.UITypeEditorEditStyle
        ' Indicates that this editor can display a control-based 
        ' drop-down interface.
        Return UITypeEditorEditStyle.DropDown
    End Function
    
    Public Overloads Overrides
 Function EditValue(ByVal context As
 System.ComponentModel.ITypeDescriptorContext, ByVal provider As System.IServiceProvider, ByVal value As
 Object) As Object

        ' Attempts to obtain an IWindowsFormsEditorService.
        Dim edSvc As IWindowsFormsEditorService
 = CType(provider.GetService(GetType(IWindowsFormsEditorService)),
 IWindowsFormsEditorService)
        If edSvc Is Nothing
 Then
            Return value
        End If

        ' Displays a drop-down control.
        Dim inputControl As New
 StringInputControl(CStr(value), edSvc)
        edSvc.DropDownControl(inputControl)
        Return inputControl.inputTextBox.Text
    End Function

End Class

' Example control for entering a string.
Friend Class StringInputControl
    Inherits System.Windows.Forms.UserControl

    Public inputTextBox As System.Windows.Forms.TextBox
    Private WithEvents ok_button As
 System.Windows.Forms.Button
    Private WithEvents cancel_button As
 System.Windows.Forms.Button
    Private edSvc As IWindowsFormsEditorService

    Public Sub New(ByVal
 [text] As String, ByVal
 edSvc As IWindowsFormsEditorService)
        InitializeComponent()
        inputTextBox.Text = [text]
        ' Stores IWindowsFormsEditorService reference to use to 
        ' close the control.
        Me.edSvc = edSvc
    End Sub

    Private Sub InitializeComponent()
        Me.inputTextBox = New System.Windows.Forms.TextBox()
        Me.ok_button = New System.Windows.Forms.Button()
        Me.cancel_button = New System.Windows.Forms.Button()
        Me.SuspendLayout()
        Me.inputTextBox.Anchor = System.Windows.Forms.AnchorStyles.Top
 Or System.Windows.Forms.AnchorStyles.Left Or
 System.Windows.Forms.AnchorStyles.Right
        Me.inputTextBox.Location = New System.Drawing.Point(6,
 7)
        Me.inputTextBox.Name = "inputTextBox"
        Me.inputTextBox.Size = New System.Drawing.Size(336,
 20)
        Me.inputTextBox.TabIndex = 0
        Me.inputTextBox.Text = ""
        Me.ok_button.Anchor = System.Windows.Forms.AnchorStyles.Bottom
 Or System.Windows.Forms.AnchorStyles.Right
        Me.ok_button.DialogResult = System.Windows.Forms.DialogResult.OK
        Me.ok_button.Location = New System.Drawing.Point(186,
 38)
        Me.ok_button.Name = "ok_button"
        Me.ok_button.TabIndex = 1
        Me.ok_button.Text = "OK"
        Me.cancel_button.Anchor = System.Windows.Forms.AnchorStyles.Bottom
 Or System.Windows.Forms.AnchorStyles.Right
        Me.cancel_button.DialogResult = System.Windows.Forms.DialogResult.Cancel
        Me.cancel_button.Location = New System.Drawing.Point(267,
 38)
        Me.cancel_button.Name = "cancel_button"
        Me.cancel_button.TabIndex = 2
        Me.cancel_button.Text = "Cancel"
        Me.Controls.AddRange(New System.Windows.Forms.Control()
 {Me.cancel_button, Me.ok_button, Me.inputTextBox})
        Me.Name = "StringInputControl"
        Me.Size = New System.Drawing.Size(350,
 70)
        Me.ResumeLayout(False)
    End Sub

    Private Sub CloseControl(ByVal
 sender As Object, ByVal
 e As EventArgs) Handles ok_button.Click, cancel_button.Click
        edSvc.CloseDropDown()
    End Sub

End Class

' Provides an example control that displays instructions in design mode
,
' with which the example UITypeEditor is associated.
Public Class WinFormsEdServiceDropDownExampleControl
    Inherits UserControl

    <EditorAttribute(GetType(TestDropDownEditor), GetType(UITypeEditor))>
 _
    Public Property TestDropDownString() As
 String
        Get
            Return localDropDownTestString
        End Get
        Set(ByVal Value As
 String)
            localDropDownTestString = Value
        End Set
    End Property
    Private localDropDownTestString As String

    Public Sub New()
        localDropDownTestString = "Test String"
        Me.Size = New Size(210, 74)
        Me.BackColor = Color.Beige
    End Sub

    Protected Overrides Sub
 OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
        If Me.DesignMode Then
            e.Graphics.DrawString("Use the Properties window to
 show", New Font("Arial",
 8), New SolidBrush(Color.Black), 5, 5)
            e.Graphics.DrawString("a drop-down control, using
 the", New Font("Arial",
 8), New SolidBrush(Color.Black), 5, 17)
            e.Graphics.DrawString("IWindowsFormsEditorService,
 for", New Font("Arial",
 8), New SolidBrush(Color.Black), 5, 29)
            e.Graphics.DrawString("configuring this control's",
 New Font("Arial", 8), New SolidBrush(Color.Black), 5, 41)
            e.Graphics.DrawString("TestDropDownString property.",
 New Font("Arial", 8), New
 SolidBrush(Color.Black), 5, 53)
        Else
            e.Graphics.DrawString("This example requires design
 mode.", New Font("Arial",
 8), New SolidBrush(Color.Black), 5, 5)
        End If
    End Sub

End Class
using System;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Drawing;
using System.Drawing.Design;
using System.Windows.Forms;
using System.Windows.Forms.Design;

namespace IWindowsFormsEditorServiceExample
{    
    // Example UITypeEditor that uses the IWindowsFormsEditorService
 to 
    // display a drop-down control.
    [System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand,
 Name = "FullTrust")] 
    public class TestDropDownEditor : System.Drawing.Design.UITypeEditor
    {
        public TestDropDownEditor()
        {
        }
    
        public override System.Drawing.Design.UITypeEditorEditStyle
 GetEditStyle(System.ComponentModel.ITypeDescriptorContext context)
        {
            // Indicates that this editor can display a control-based
 
            // drop-down interface.
            return UITypeEditorEditStyle.DropDown;
        }
    
        public override object EditValue(System.ComponentModel.ITypeDescriptorContext
 context, System.IServiceProvider provider, object value)
        {
            // Attempts to obtain an IWindowsFormsEditorService.
            IWindowsFormsEditorService edSvc = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
            if( edSvc == null )
                return value;       
            
            // Displays a drop-down control.
            StringInputControl inputControl = new StringInputControl((string)value,
 edSvc);
            edSvc.DropDownControl(inputControl);
            return inputControl.inputTextBox.Text;
        }
    }

    // Example control for entering a string.
    internal class StringInputControl : System.Windows.Forms.UserControl
    {
        public System.Windows.Forms.TextBox inputTextBox;
        private System.Windows.Forms.Button ok_button;
        private System.Windows.Forms.Button cancel_button;
        private IWindowsFormsEditorService edSvc;

        public StringInputControl(string text,
 IWindowsFormsEditorService edSvc)
        {
            InitializeComponent();
            inputTextBox.Text = text;
            // Stores IWindowsFormsEditorService reference to use to
 
            // close the control.
            this.edSvc = edSvc;
        }

        private void InitializeComponent()
        {
            this.inputTextBox = new System.Windows.Forms.TextBox();
            this.ok_button = new System.Windows.Forms.Button();
            this.cancel_button = new System.Windows.Forms.Button();
            this.SuspendLayout();
            this.inputTextBox.Anchor = ((System.Windows.Forms.AnchorStyles.Top
 | System.Windows.Forms.AnchorStyles.Left) 
                | System.Windows.Forms.AnchorStyles.Right);
            this.inputTextBox.Location = new
 System.Drawing.Point(6, 7);
            this.inputTextBox.Name = "inputTextBox";
            this.inputTextBox.Size = new System.Drawing.Size(336,
 20);
            this.inputTextBox.TabIndex = 0;
            this.inputTextBox.Text = "";
            this.ok_button.Anchor = (System.Windows.Forms.AnchorStyles.Bottom
 | System.Windows.Forms.AnchorStyles.Right);
            this.ok_button.DialogResult = System.Windows.Forms.DialogResult.OK;
            this.ok_button.Location = new System.Drawing.Point(186,
 38);
            this.ok_button.Name = "ok_button";
            this.ok_button.TabIndex = 1;
            this.ok_button.Text = "OK";
            this.ok_button.Click += new EventHandler(this.CloseControl);
            this.cancel_button.Anchor = (System.Windows.Forms.AnchorStyles.Bottom
 | System.Windows.Forms.AnchorStyles.Right);
            this.cancel_button.DialogResult = System.Windows.Forms.DialogResult.Cancel;
            
            this.cancel_button.Location = new
 System.Drawing.Point(267, 38);
            this.cancel_button.Name = "cancel_button";
            this.cancel_button.TabIndex = 2;
            this.cancel_button.Text = "Cancel";
            this.cancel_button.Click += new
 EventHandler(this.CloseControl);
            this.Controls.AddRange(new System.Windows.Forms.Control[]
 {
                                                                          this.cancel_button
,
                                                                          this.ok_button
,
                                                                          this.inputTextBox});
            this.Name = "StringInputControl";
            this.Size = new System.Drawing.Size(350,
 70);
            this.ResumeLayout(false);
        }

        private void CloseControl(object sender,
 EventArgs e)
        {
            edSvc.CloseDropDown();
        }
    }
    
    // Provides an example control that displays instructions in design
 mode,
    // with which the example UITypeEditor is associated.
    public class WinFormsEdServiceDropDownExampleControl
 : UserControl
    {
        [EditorAttribute(typeof(TestDropDownEditor), typeof(UITypeEditor))]
        public string TestDropDownString
        {
            get
            {
                return localDropDownTestString;
            }
            set
            {       
                localDropDownTestString = value;
            }
        }
        
        private string localDropDownTestString;

        public WinFormsEdServiceDropDownExampleControl()
        {
            localDropDownTestString = "Test String";
            this.Size = new Size(210, 74);
            this.BackColor = Color.Beige;
        }

        protected override void OnPaint(System.Windows.Forms.PaintEventArgs
 e)
        {
            if( this.DesignMode )
            {
                e.Graphics.DrawString("Use the Properties window to show",
 new Font("Arial", 8), new SolidBrush(Color.Black),
 5, 5);
                e.Graphics.DrawString("a drop-down control, using
 the", new Font("Arial", 8), new
 SolidBrush(Color.Black), 5, 17);
                e.Graphics.DrawString("IWindowsFormsEditorService, for",
 new Font("Arial", 8), new SolidBrush(Color.Black),
 5, 29);
                e.Graphics.DrawString("configuring this control's",
 new Font("Arial", 8), new SolidBrush(Color.Black),
 5, 41);
                e.Graphics.DrawString("TestDropDownString property.", new
 Font("Arial", 8), new SolidBrush(Color.Black), 5,
 53);
            }
            else
            {
                e.Graphics.DrawString("This example requires design mode.",
 new Font("Arial", 8), new SolidBrush(Color.Black),
 5, 5);
            }
        }
    }
}
#using <System.Windows.Forms.dll>
#using <System.Drawing.dll>
#using <System.dll>

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

namespace IWindowsFormsEditorServiceExample
{
   // Example control for entering a string.
   private ref class StringInputControl: public
 UserControl
   {
   public:
      System::Windows::Forms::TextBox^ inputTextBox;

   private:
      System::Windows::Forms::Button^ ok_button;
      System::Windows::Forms::Button^ cancel_button;
      IWindowsFormsEditorService^ edSvc;

   public:
      StringInputControl( String^ text, IWindowsFormsEditorService^ edSvc )
      {
         InitializeComponent();
         inputTextBox->Text = text;
         
         // Stores IWindowsFormsEditorService reference to use to
         // close the control.
         this->edSvc = edSvc;
      }

   private:
      void InitializeComponent()
      {
         this->inputTextBox = gcnew System::Windows::Forms::TextBox;
         this->ok_button = gcnew System::Windows::Forms::Button;
         this->cancel_button = gcnew System::Windows::Forms::Button;
         this->SuspendLayout();
         this->inputTextBox->Anchor = static_cast<AnchorStyles>(System::Windows::Forms::AnchorStyles::Top
 | System::Windows::Forms::AnchorStyles::Left | System::Windows::Forms::AnchorStyles::Right);
         this->inputTextBox->Location = System::Drawing::Point(
 6, 7 );
         this->inputTextBox->Name = "inputTextBox";
         this->inputTextBox->Size = System::Drawing::Size(
 336, 20 );
         this->inputTextBox->TabIndex = 0;
         this->inputTextBox->Text = "";
         this->ok_button->Anchor = static_cast<AnchorStyles>(System::Windows::Forms::AnchorStyles::Bottom
 | System::Windows::Forms::AnchorStyles::Right);
         this->ok_button->DialogResult = System::Windows::Forms::DialogResult::OK;
         this->ok_button->Location = System::Drawing::Point(
 186, 38 );
         this->ok_button->Name = "ok_button";
         this->ok_button->TabIndex = 1;
         this->ok_button->Text = "OK";
         this->ok_button->Click += gcnew EventHandler( this,
 &StringInputControl::CloseControl );
         this->cancel_button->Anchor = static_cast<AnchorStyles>(System::Windows::Forms::AnchorStyles::Bottom
 | System::Windows::Forms::AnchorStyles::Right);
         this->cancel_button->DialogResult = System::Windows::Forms::DialogResult::Cancel;
         this->cancel_button->Location = System::Drawing::Point(
 267, 38 );
         this->cancel_button->Name = "cancel_button";
         this->cancel_button->TabIndex = 2;
         this->cancel_button->Text = "Cancel";
         this->cancel_button->Click += gcnew EventHandler(
 this, &StringInputControl::CloseControl );
         array<System::Windows::Forms::Control^>^temp0 = {this->cancel_button
,this->ok_button,this->inputTextBox};
         this->Controls->AddRange( temp0 );
         this->Name = "StringInputControl";
         this->Size = System::Drawing::Size( 350, 70 );
         this->ResumeLayout( false );
      }

      void CloseControl( Object^ /*sender*/, EventArgs^ /*e*/
 )
      {
         edSvc->CloseDropDown();
      }
   };

   // Example UITypeEditor that uses the IWindowsFormsEditorService
 to
   // display a drop-down control.
   [PermissionSet(SecurityAction::Demand, Name = "FullTrust")]
   public ref class TestDropDownEditor: public
 System::Drawing::Design::UITypeEditor
   {
   public:
      TestDropDownEditor(){}

      virtual System::Drawing::Design::UITypeEditorEditStyle GetEditStyle( System::ComponentModel::ITypeDescriptorContext^
 /*context*/ ) override
      {
         // Indicates that this editor can display a control-based
         // drop-down interface.
         return UITypeEditorEditStyle::DropDown;
      }

      virtual Object^ EditValue( System::ComponentModel::ITypeDescriptorContext^
 /*context*/, System::IServiceProvider^ provider, Object^ value ) override
      {
         // Attempts to obtain an IWindowsFormsEditorService.
         IWindowsFormsEditorService^ edSvc = dynamic_cast<IWindowsFormsEditorService^>(provider->GetService(
 IWindowsFormsEditorService::typeid ));
         if ( edSvc == nullptr )
                  return value;

         // Displays a drop-down control.
         StringInputControl^ inputControl = gcnew StringInputControl( dynamic_cast<String^>(value),edSvc
 );
         edSvc->DropDownControl( inputControl );
         return inputControl->inputTextBox->Text;
      }
   };

   // Provides an example control that displays instructions in design
 mode,
   // with which the example UITypeEditor is associated.
   public ref class WinFormsEdServiceDropDownExampleControl:
 public UserControl
   {
   public:

      property String^ TestDropDownString 
      {
         [EditorAttribute(IWindowsFormsEditorServiceExample::TestDropDownEditor::typeid
,UITypeEditor::typeid)]
         String^ get()
         {
            return localDropDownTestString;
         }

         void set( String^ value )
         {
            localDropDownTestString = value;
         }
      }

   private:
      String^ localDropDownTestString;

   public:
      WinFormsEdServiceDropDownExampleControl()
      {
         localDropDownTestString = "Test String";
         this->Size = System::Drawing::Size( 210, 74 );
         this->BackColor = Color::Beige;
      }

   protected:
      virtual void OnPaint( System::Windows::Forms::PaintEventArgs^
 e ) override
      {
         if ( this->DesignMode )
         {
            e->Graphics->DrawString( "Use the Properties window to show",
 gcnew System::Drawing::Font( "Arial",8 ), gcnew SolidBrush( Color::Black
 ), 5, 5 );
            e->Graphics->DrawString( "a drop-down control, using
 the", gcnew System::Drawing::Font( "Arial",8 ), gcnew SolidBrush(
 Color::Black ), 5, 17 );
            e->Graphics->DrawString( "IWindowsFormsEditorService, for",
 gcnew System::Drawing::Font( "Arial",8 ), gcnew SolidBrush( Color::Black
 ), 5, 29 );
            e->Graphics->DrawString( "configuring this
 control's", gcnew System::Drawing::Font( "Arial",8 ), gcnew SolidBrush(
 Color::Black ), 5, 41 );
            e->Graphics->DrawString( "TestDropDownString property.",
 gcnew System::Drawing::Font( "Arial",8 ), gcnew SolidBrush( Color::Black
 ), 5, 53 );
         }
         else
         {
            e->Graphics->DrawString( "This example requires design mode.",
 gcnew System::Drawing::Font( "Arial",8 ), gcnew SolidBrush( Color::Black
 ), 5, 5 );
         }
      }
   };
}
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
IWindowsFormsEditorService メンバ
System.Windows.Forms.Design 名前空間

IWindowsFormsEditorService メソッド


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

  名前 説明
パブリック メソッド CloseDropDown 以前開かれていたドロップダウン コントロール領域があれば、すべて閉じます
パブリック メソッド DropDownControl 指定したコントロールを、ドロップダウン領域内のこのサービス提供するプロパティ グリッドの値フィールドの下に表示します
パブリック メソッド ShowDialog 指定した Form表示します
参照参照

関連項目

IWindowsFormsEditorService インターフェイス
System.Windows.Forms.Design 名前空間

IWindowsFormsEditorService メンバ

UITypeEditor にインターフェイス提供してWindows フォーム表示したり、デザイン モードプロパティ グリッド コントロールからドロップダウン領域コントロール表示したりします

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


パブリック メソッドパブリック メソッド
  名前 説明
パブリック メソッド CloseDropDown 以前開かれていたドロップダウン コントロール領域があれば、すべて閉じます
パブリック メソッド DropDownControl 指定したコントロールを、ドロップダウン領域内のこのサービス提供するプロパティ グリッドの値フィールドの下に表示します
パブリック メソッド ShowDialog 指定した Form表示します
参照参照

関連項目

IWindowsFormsEditorService インターフェイス
System.Windows.Forms.Design 名前空間


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

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

辞書ショートカット

すべての辞書の索引

「IWindowsFormsEditorService」の関連用語

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

   

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



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

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

©2024 GRAS Group, Inc.RSS