次の方法で共有


BaseForm.GetService(Type) メソッド

定義

要求したサービスを取得します。

protected public:
 System::Object ^ GetService(Type ^ serviceType);
protected internal object GetService (Type serviceType);
override this.GetService : Type -> obj
Protected Friend Function GetService (serviceType As Type) As Object

パラメーター

serviceType
Type

サービス オブジェクト。

戻り値

要求されたサービス。

次の例では、 メソッドの サービス オブジェクトを GetService 使用して、2 つのサービスを追加します。

class MyShellFrm : BaseForm, IFrameHost {
public MyShellFrm(IServiceProvider serviceProvider,
   ShellComponents shellComponents)
    : base(serviceProvider) {
    _uiService = new UI_Svc((IWin32Window)this, (IFrameHost)this);
    _downLoadSvc = new DownLoadSvc();
    _propEditSvc = new PropEditSvc();
    _shellComponents = shellComponents;

    SuspendLayout();
    try {
        if (_uiService.RightToLeftLayout) {
            RightToLeft = RightToLeft.Yes;
            RightToLeftLayout = true;
        }

        IServiceContainer serviceContainer = (IServiceContainer)
            GetService(typeof(IServiceContainer));
        Debug.Assert(serviceContainer != null);

        if (serviceContainer != null) {
            serviceContainer.AddService(
                typeof(IManagementUIService), _uiService);
            serviceContainer.AddService(
                typeof(IPropertyEditingService), _propEditSvc);
        }

        setWidthHeightBounds();

        Font = (Font)((IManagementUIService)_uiService).Styles["DialogFont"];
        Text = "My custom tool";
        Icon = getMyIcon();

        _managementFrame = new ManagementFrame(serviceProvider, this);
        _managementFrame.SuspendLayout();
        try {
            _managementFrame.Name = "_managementFrame";
            _managementFrame.Dock = DockStyle.Fill;
            Controls.Add(_managementFrame);
        } finally {
            _managementFrame.ResumeLayout(false);
        }
    } finally {
        ResumeLayout();
    }
}

適用対象