Share via


WindowVisibilityEvents 接口

指示 ToolWindows 是否可见(是隐藏还是显示)。 使用此对象实现功能,并为此对象的文档引用 WindowVisibilityEventsClass

命名空间:  EnvDTE80
程序集:  EnvDTE80(在 EnvDTE80.dll 中)

语法

声明
<GuidAttribute("84DE07BC-43A2-4275-BCF9-D207D20E49ED")> _
Public Interface WindowVisibilityEvents _
    Inherits _WindowVisibilityEvents, _dispWindowVisibilityEvents_Event
[GuidAttribute("84DE07BC-43A2-4275-BCF9-D207D20E49ED")]
public interface WindowVisibilityEvents : _WindowVisibilityEvents, 
    _dispWindowVisibilityEvents_Event
[GuidAttribute(L"84DE07BC-43A2-4275-BCF9-D207D20E49ED")]
public interface class WindowVisibilityEvents : _WindowVisibilityEvents, 
    _dispWindowVisibilityEvents_Event
[<GuidAttribute("84DE07BC-43A2-4275-BCF9-D207D20E49ED")>]
type WindowVisibilityEvents =  
    interface 
        interface _WindowVisibilityEvents 
        interface _dispWindowVisibilityEvents_Event 
    end
public interface WindowVisibilityEvents extends _WindowVisibilityEvents, _dispWindowVisibilityEvents_Event

WindowVisibilityEvents 类型公开以下成员。

方法

  名称 说明
公共方法 add_WindowHiding 基础结构。 仅由 Microsoft 内部使用。 (继承自 _dispWindowVisibilityEvents_Event。)
公共方法 add_WindowShowing 基础结构。 仅由 Microsoft 内部使用。 (继承自 _dispWindowVisibilityEvents_Event。)
公共方法 remove_WindowHiding 基础结构。 仅由 Microsoft 内部使用。 (继承自 _dispWindowVisibilityEvents_Event。)
公共方法 remove_WindowShowing 基础结构。 仅由 Microsoft 内部使用。 (继承自 _dispWindowVisibilityEvents_Event。)

页首

事件

  名称 说明
公共事件 WindowHiding 基础结构。 仅由 Microsoft 内部使用。 (继承自 _dispWindowVisibilityEvents_Event。)
公共事件 WindowShowing 基础结构。 仅由 Microsoft 内部使用。 (继承自 _dispWindowVisibilityEvents_Event。)

页首

示例

此示例使用一个外接程序来连接 WindowVisibilityEvents。 将 Connect.vb 或 Connect.cs 文件中的代码替换为下面的代码示例。 运行此外接程序,并在 Visual Studio IDE 中打开并关闭**“命令窗口”“输出窗口”**以查看正在执行的事件捕获方法。 有关如何运行自动化示例的更多信息,请参见 如何:编译和运行自动化对象模型代码示例

Imports System
Imports Microsoft.VisualStudio.CommandBars
Imports Extensibility
Imports EnvDTE
Imports EnvDTE80

Public Class Connect
    Implements IDTExtensibility2
    Dim applicationObject As DTE2
    Dim addInInstance As AddIn
    Public WithEvents windowsVisEvents As EnvDTE80.WindowVisibilityEvents
    Public Sub New()
    End Sub
    Public Sub OnConnection(ByVal application As Object, _
 ByVal connectMode As ext_ConnectMode, ByVal addInInst As Object, _
 ByRef custom As Array) Implements IDTExtensibility2.OnConnection
    applicationObject = CType(application, DTE2)
    addInInstance = CType(addInInst, AddIn)
    Dim toolwin As EnvDTE80.ToolWindows
    toolwin = applicationObject.ToolWindows
    windowsVisEvents = CType(toolwin.DTE.Events, _
    Events2).WindowVisibilityEvents
End Sub
Private Sub windowsVisEvents_WindowHiding(ByVal Window As _
 EnvDTE.Window) Handles windowsVisEvents.WindowHiding
    MsgBox(Window.Caption & " is hiding.")
End Sub
Private Sub windowsVisEvents_WindowShowing(ByVal Window As _
 EnvDTE.Window) Handles windowsVisEvents.WindowShowing
    MsgBox(Window.Caption & " is showing.")
End Sub
Public Sub OnDisconnection(ByVal disconnectMode _
 As ext_DisconnectMode, ByRef custom As Array) Implements  _
IDTExtensibility2.OnDisconnection
    windowsVisEvents = Nothing
End Sub
Public Sub OnAddInsUpdate(ByRef custom As Array) Implements _
 IDTExtensibility2.OnAddInsUpdate
End Sub
Public Sub OnStartupComplete(ByRef custom As Array) Implements _
 IDTExtensibility2.OnStartupComplete
End Sub
Public Sub OnBeginShutdown(ByRef custom As Array) Implements _
 IDTExtensibility2.OnBeginShutdown
End Sub
End Class
namespace CS_Events_Code
{
using System;
using Microsoft.VisualStudio.CommandBars;
using Extensibility;
using EnvDTE;
using EnvDTE80;
using System.Windows.Forms;
  public class Connect : Object, IDTExtensibility2
  {
   public Connect()
   {
   }
   public void OnConnection(object application, ext_ConnectMode
 connectMode, object addInInst, ref Array custom)
    {
    applicationObject = (DTE2)application;
    addInInstance = (AddIn)addInInst;
    EnvDTE80.Events2 events = (EnvDTE80.Events2
 )applicationObject.Events;
    windowsVisEvents = 
(EnvDTE80.WindowVisibilityEvents)events.get_WindowVisibilityEvents
(null);
    // Connect to each delegate exposed from the windows visibiliy 
    // events object retrieved above
    windowsVisEvents.WindowHiding +=new 
_dispWindowVisibilityEvents_WindowHidingEventHandler
(this.WindowHiding); 
    windowsVisEvents.WindowShowing +=new 
_dispWindowVisibilityEvents_WindowShowingEventHandler
(this.WindowShowing);
   }
   public void OnDisconnection(ext_DisconnectMode disconnectMode,
 ref Array custom)
   {
    if (windowsVisEvents != null)
    {
        windowsVisEvents.WindowHiding -= new 
_dispWindowVisibilityEvents_WindowHidingEventHandler
(this.WindowHiding);
       windowsVisEvents.WindowShowing -= new 
_dispWindowVisibilityEvents_WindowShowingEventHandler
(this.WindowShowing);
   }
   }
   public void OnAddInsUpdate(ref Array custom)
   {
   }
public void OnStartupComplete(ref Array custom)
   {
   }
public void OnBeginShutdown(ref Array custom)
   {
   }
private DTE2 applicationObject;
private AddIn addInInstance;
private EnvDTE80.WindowVisibilityEvents windowsVisEvents;
public void WindowHiding(EnvDTE.Window winRef)
   {
    MessageBox.Show("The window " + winRef.Caption + " is hiding.");
   }
public void WindowShowing(EnvDTE.Window winRef)
   {
    MessageBox.Show("The window " + winRef.Caption + " is showing.");
   }
  }
}

请参阅

参考

EnvDTE80 命名空间