ViewTechnology 列挙体とは? わかりやすく解説

ViewTechnology 列挙体

デザイナ ホストがサポートする一連の技術の識別子を定義します。

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

<ComVisibleAttribute(True)> _
Public Enumeration ViewTechnology
Dim instance As ViewTechnology
[ComVisibleAttribute(true)] 
public enum ViewTechnology
[ComVisibleAttribute(true)] 
public enum class ViewTechnology
/** @attribute ComVisibleAttribute(true) */ 
public enum ViewTechnology
ComVisibleAttribute(true) 
public enum ViewTechnology
メンバメンバ
 メンバ名説明
Default既定のビュー技術サポートを指定します。  

ルート デザイナは任意の型のオブジェクトを返すことができますが、オブジェクトにはホストの技術のアダプタとの互換性がある必要があります。Visual Studio などのホスト環境には、新しいビュー技術アダプタを組み込むための手段も用意されています。Windows フォーム デザイナの既定のビュー オブジェクトは System.Windows.Forms.Control インスタンスです。

Passthroughビュー オブジェクトを開発環境に直接渡すモードを表します。  

ビュー オブジェクトは、開発環境が要求するすべてのインターフェイスを実装する必要があります。Visual Studio 開発環境は、ActiveX コントロール、アクティブ ドキュメント、または Visual Studio VSI (Visual Studio Integration) プログラムを通じて利用できる IVsWindowPane インターフェイスを実装したオブジェクトのいずれかのビュー オブジェクトをサポートしています。Visual Studio 開発環境では、このビュー技術をサポートしています。このビュー技術は、すべての開発環境でサポートされているわけではありません。

WindowsFormsWindows フォーム コントロール オブジェクトがルート デザイナにおける表示を提供するモードを表します。  

デザイナ ホストは、開発環境のドキュメント ウィンドウに Windows フォーム コントロールを表示します。

解説解説

ビュー アダプタ モデルは ViewTechnology 機能の後継であり、新しい機能を追加しますが、選択により、下位互換性および将来の使用のために ViewTechnology を保持することもできます。詳細については、Windows フォームのサポート技術情報 (http://windowsforms.net/articles/shapedesigner.aspx) で「.NET Shape Library: A Sample Designer」を参照してください。

ViewTechnology は、デザイナがホストするドキュメントの表示を制御するモードを示す識別子を定義します。

デザイナ ホスト環境では、Default だけを使用します。以前のバージョンの .NET Framework では、ViewTechnology 列挙体がルート デザイナでサポートされている UI モデルの種類を指定を指定していました。このモデルには拡張性がないため、代わりに view adapter モデルを使用する必要があります。ビュー アダプタは、オブジェクトの型を別の型に合わせて調整する型です。

たとえば、HTML デザイナはそのビューとして DemoDOM ツリーを返します。HTML デザイナは Default のビュー技術を返します。Windows フォーム ホスト環境では、1 つ以上のビュー アダプタ クラスを使用できます。そのようなクラスが DemoDOM を Windows フォーム コントロールに変換できた場合は、ホスト アプリケーションがこの種類のデザイナをサポートできます。デザイナの GetView メソッドから返されたデータ型を処理できるアダプタがない場合は、デザイナの読み込みが失敗し、ユーザーにエラーが表示されます。

Visual Studio は、ビュー アダプタを提供するための拡張可能なスキームを備えているため、UI 技術に合わせて調整できます。サードパーティ テクノロジ プロバイダからビュー アダプタが提供される可能性もあります。それらのオブジェクト モデルはすぐに使用できます。

ビュー アダプタを使用する例については、Windows フォームのサポート技術情報 (http://windowsforms.net/articles/shapedesigner.aspx) で「.NET Shape Library: A Sample Designer」を参照してください。

使用例使用例

デザイナで ViewTechnology クラスを使用する方法のコード例を次に示します。このコード例は IRootDesigner インターフェイスのトピックで取り上げているコード例の一部分です。

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

Namespace SampleRootDesigner

    ' This sample demonstrates how to provide the root designer view,
 or
    ' design mode background view, by overriding IRootDesigner.GetView().

    ' This sample component inherits from RootDesignedComponent which
 
    ' uses the SampleRootDesigner.
    Public Class RootViewSampleComponent
        Inherits RootDesignedComponent

        Public Sub New()
        End Sub

    End Class

    ' The following attribute associates the SampleRootDesigner designer
 
    ' with the SampleComponent component.
    <Designer(GetType(SampleRootDesigner), GetType(IRootDesigner))>
 _
    Public Class RootDesignedComponent
        Inherits Component

        Public Sub New()
        End Sub 

    End Class 

    Public Class SampleRootDesigner
        Inherits ComponentDesigner
        Implements IRootDesigner

        ' Member field of custom type RootDesignerView, a control that
 
        ' will be shown in the Forms designer view. This member is 
        ' cached to reduce processing needed to recreate the 
        ' view control on each call to GetView().
        Private m_view As RootDesignerView

        ' This method returns an instance of the view for this root
        ' designer. The "view" is the user interface that
 is presented
        ' in a document window for the user to manipulate. 
        Function GetView(ByVal technology As
 ViewTechnology) As Object Implements
 IRootDesigner.GetView
            If Not technology = ViewTechnology.Default
 Then
                Throw New ArgumentException("Not
 a supported view technology", "technology")
            End If
            If m_view Is Nothing
 Then
                ' Some type of displayable Form or control is required
 for a root designer that overrides 
                ' GetView(). In this example, a Control of type RootDesignerView
 is used.
                ' Any class that inherits from Control will work. 
                m_view = New RootDesignerView(Me)
            End If
            Return m_view
        End Function 

        ' IRootDesigner.SupportedTechnologies is a required override
 for an 
        ' IRootDesigner. Default is the view technology used by this
 designer.
        ReadOnly Property SupportedTechnologies()
 As ViewTechnology() Implements IRootDesigner.SupportedTechnologies
            Get
                Return New ViewTechnology()
 {ViewTechnology.Default}
            End Get
        End Property

        ' RootDesignerView is a simple control that will be displayed
 
        ' in the designer window.
        Private Class RootDesignerView
            Inherits Control
            Private m_designer As SampleRootDesigner

            Public Sub New(ByVal
 designer As SampleRootDesigner)
                m_designer = designer
                BackColor = Color.Blue
                Font = New Font(Font.FontFamily.Name, 24.0F)
            End Sub 

            Protected Overrides Sub
 OnPaint(ByVal pe As PaintEventArgs)
                MyBase.OnPaint(pe)
                ' Draws the name of the component in large letters.
                Dim rf As New
 RectangleF(ClientRectangle.X, ClientRectangle.Y, ClientRectangle.Width, ClientRectangle.Height)
                pe.Graphics.DrawString(m_designer.Component.Site.Name, Font, Brushes.Yellow,
 rf)
            End Sub 

        End Class
    End Class

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

namespace SampleRootDesigner
{    
    // This sample demonstrates how to provide the root designer view,
 or
    // design mode background view, by overriding IRootDesigner.GetView().

    // This sample component inherits from RootDesignedComponent which
 
    // uses the SampleRootDesigner.
    public class RootViewSampleComponent :
 RootDesignedComponent
    {
        public RootViewSampleComponent()
        {
        }
    }

    // The following attribute associates the SampleRootDesigner designer
 
    // with the SampleComponent component.
    [Designer(typeof(SampleRootDesigner), typeof(IRootDesigner))]
    public class RootDesignedComponent : Component
    {
        public RootDesignedComponent()
        {
        }
    }

    public class SampleRootDesigner : ComponentDesigner,
 IRootDesigner
    {
        // Member field of custom type RootDesignerView, a control that
 
        // will be shown in the Forms designer view. This member is
 
        // cached to reduce processing needed to recreate the 
        // view control on each call to GetView().
        private RootDesignerView m_view;            

        // This method returns an instance of the view for this root
        // designer. The "view" is the user interface that
 is presented
        // in a document window for the user to manipulate. 
        object IRootDesigner.GetView(ViewTechnology technology) 
        {
            if (technology != ViewTechnology.Default)
            {
                throw new ArgumentException("Not a supported
 view technology", "technology");
            }
            if (m_view == null)
            {
                   // Some type of displayable Form or control is required
 
                   // for a root designer that overrides GetView().
 In this 
                   // example, a Control of type RootDesignerView is
 used.
                   // Any class that inherits from Control will work.
                m_view = new RootDesignerView(this);
            }
            return m_view;
        }

        // IRootDesigner.SupportedTechnologies is a required override
 for an
        // IRootDesigner. Default is the view technology used by this
 designer.  
        ViewTechnology[] IRootDesigner.SupportedTechnologies 
        {
            get
            {
                return new ViewTechnology[]
 {ViewTechnology.Default};
            }
        }

        // RootDesignerView is a simple control that will be displayed
 
        // in the designer window.
        private class RootDesignerView : Control
 
        {
            private SampleRootDesigner m_designer;

            public RootDesignerView(SampleRootDesigner designer)
            {
                m_designer = designer;
                BackColor = Color.Blue;
                Font = new Font(Font.FontFamily.Name, 24.0f);
            }

            protected override void OnPaint(PaintEventArgs
 pe)
            {
                base.OnPaint(pe);

                // Draws the name of the component in large letters.
                pe.Graphics.DrawString(m_designer.Component.Site.Name, Font, Brushes.Yellow,
 ClientRectangle);
            }
        }        
    }
}
package SampleRootDesigner;

import System.*;
import System.Collections.*;
import System.ComponentModel.*;
import System.ComponentModel.Design.*;
import System.Diagnostics.*;
import System.Drawing.*;
import System.Windows.Forms.*;
import System.Windows.Forms.Design.*;
// This sample demonstrates how to provide the root designer view, or
// design mode background view, by overriding IRootDesigner.GetView().
// This sample component inherits from RootDesignedComponent which 
// uses the SampleRootDesigner.
public class RootViewSampleComponent extends
 RootDesignedComponent
{
    public RootViewSampleComponent()
    {
    } //RootViewSampleComponent
} //RootViewSampleComponent

// The following attribute associates the SampleRootDesigner designer
 
// with the SampleComponent component.
/** @ attribute Designer(SampleRootDesigner .class.ToType(),
    IRootDesigner .class.ToType())
 */
public class RootDesignedComponent extends
 Component
{
    public RootDesignedComponent()
    {
    } //RootDesignedComponent
} //RootDesignedComponent

public class SampleRootDesigner extends  ComponentDesigner
 
    implements  IRootDesigner
{
    // Member field of custom type RootDesignerView, a control that
 
    // will be shown in the Forms designer view. This member is 
    // cached to reduce processing needed to recreate the 
    // view control on each call to GetView().
    private RootDesignerView mView;

    // This method returns an instance of the view for this root
    // designer. The "view" is the user interface that is
 presented
    // in a document window for the user to manipulate. 
    public Object GetView(ViewTechnology technology)
    {
        if (!(technology.Equals(ViewTechnology.WindowsForms)))
 {
            throw new ArgumentException(
                "Not a supported view technology", "technology");
        }
        if (mView == null) {
            // Some type of displayable Form or control is required
 
            // for a root designer that overrides GetView(). In this
 
            // example, a Control of type RootDesignerView is used.
            // Any class that inherits from Control will work.
            mView = new RootDesignerView(this);
        }
        return mView;
    } //GetView

    // IRootDesigner.SupportedTechnologies is a required override for
 an
    // IRootDesigner. WindowsForms is the view technology used by this
 designer.  
    /** @property 
     */
    public ViewTechnology[] get_SupportedTechnologies()
    {
        return new ViewTechnology[] { ViewTechnology.WindowsForms
 };
    } //get_SupportedTechnologies

    // RootDesignerView is a simple control that will be displayed 
    // in the designer window.
    private class RootDesignerView extends
 Control
    {
        private SampleRootDesigner mDesigner;

        public RootDesignerView(SampleRootDesigner designer)
        {
            mDesigner = designer;
            set_BackColor(Color.get_Blue());
            set_Font(new Font(get_Font().get_FontFamily().get_Name(),
 24));
        } //RootDesignerView

        protected void OnPaint(PaintEventArgs
 pe)
        {
            super.OnPaint(pe);

            // Draws the name of the component in large letters.
            pe.get_Graphics().DrawString(
                mDesigner.get_Component().get_Site().get_Name(), 
                get_Font(), Brushes.get_Yellow(), 
                RectangleF.op_Implicit(get_ClientRectangle()));
        } //OnPaint
    } //RootDesignerView
} //SampleRootDesigner
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
System.ComponentModel.Design 名前空間



英和和英テキスト翻訳

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

辞書ショートカット

すべての辞書の索引

「ViewTechnology 列挙体」の関連用語

ViewTechnology 列挙体のお隣キーワード
検索ランキング

   

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



ViewTechnology 列挙体のページの著作権

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

©2026 GRAS Group, Inc.RSS