Window2.Close 方法 (vsSaveChanges)
关闭打开的文档并可选择保存,或关闭并销毁此窗口。
命名空间: EnvDTE80
程序集: EnvDTE80(在 EnvDTE80.dll 中)
语法
声明
Sub Close ( _
SaveChanges As vsSaveChanges _
)
void Close(
vsSaveChanges SaveChanges
)
void Close(
[InAttribute] vsSaveChanges SaveChanges
)
abstract Close :
SaveChanges:vsSaveChanges -> unit
function Close(
SaveChanges : vsSaveChanges
)
参数
- SaveChanges
类型:EnvDTE.vsSaveChanges
可选。一个确定是否保存一个项或多个项的 vsSaveChanges 常数。
实现
示例
此示例使文本文件成为活动窗口。 然后,此示例使用该窗口循环访问窗口集合以显示大量属性,然后关闭该窗口对象。
在运行此示例之前,在 Visual Studio 中打开一个项目,向其中添加一个名为“TextFile1.txt”的文本文件,然后使该文本文件成为活动窗口。
有关如何作为外接程序运行此示例的更多信息,请参见如何:编译和运行自动化对象模型代码示例。
Imports EnvDTE
Imports EnvDTE80
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)
WinActivateExample(_applicationObject)
End Sub
Sub WinActivateExample(ByVal dte As DTE2)
Try
' Before running, create a text file named
' "TextFile1.txt", include it in your solution,
' and make it the active window.
Dim win As Window2
Dim doc As Document
If _applicationObject.Documents.Count > 0 Then
doc = _applicationObject.Documents.Item("TextFile1.txt")
win = CType(doc.ActiveWindow, Window2)
' Show the name of the Project that contains this
' window and document.
MsgBox("The project that contains this window is named:" _
& win.Project.Name)
' Activate the window.
win.Activate()
' Other available windows.
Dim w As String = "Other available windows in _
the collection:" & vbCr
For Each wi As Window2 In win.Collection
w = w & wi.Caption & vbCr
Next
MsgBox(w)
' Close the window.
win.Close(vsSaveChanges.vsSaveChangesNo)
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
using EnvDTE;
using EnvDTE80;
using System.Windows.Forms;
public void OnConnection(object application,
ext_ConnectMode connectMode, object addInInst, ref Array custom)
{
_applicationObject = (DTE2)application;
_addInInstance = (AddIn)addInInst;
WinActivateExample(_applicationObject);
}
public void WinActivateExample(DTE2 dte)
{
try
{
// Before running, create a text file named
// "TextFile1.txt" and include it in your solution.
// You do not need to make it the active window.
Window win;
Document doc;
if (dte.Documents.Count > 0)
{
doc = dte.Documents.Item("TextFile1.txt");
win = doc.ActiveWindow;
// Show the name of the project that contains this
// window and document.
MessageBox.Show(win.Project.Name);
win.Activate(); // Activate the window
// Show the name of the current ProjectItem in the window.
MessageBox.Show(win.ProjectItem.Name);
// How many other windows are available?
string w = "Other available windows in the collection:\n";
foreach (Window wi in win.Collection)
{
w = w + wi.Caption + "\n";
}
// Close the window.
win.Close(vsSaveChanges.vsSaveChangesNo);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
.NET Framework 安全性
- 对直接调用方的完全信任。此成员不能由部分信任的代码使用。有关更多信息,请参见通过部分受信任的代码使用库。