ApplicationFactory.HasVstoObject Yöntem (_Workbook)
Gösteren bir değeri döndürür olup bir Microsoft.Office.Tools.Excel.Workbook ana madde için belirtilen Excel çalışma kitabı nesnesi bulunmaktadır.
Ad alanı: Microsoft.Office.Tools.Excel
Derleme: Microsoft.Office.Tools.Excel (Microsoft.Office.Tools.Excel.dll içinde)
Sözdizimi
'Bildirim
Function HasVstoObject ( _
workbook As _Workbook _
) As Boolean
bool HasVstoObject(
_Workbook workbook
)
Parametreler
- workbook
Tür: Microsoft.Office.Interop.Excel._Workbook
Test etmek için doğal bir çalışma kitabı nesnesi.Bu parametre türü olmasına rağmen Microsoft.Office.Interop.Excel._Workbook, genellikle geçmesi bir Microsoft.Office.Interop.Excel.Workbook bu yöntemi nesne.
Dönüş Değeri
Tür: System.Boolean
true yoksa bir Microsoft.Office.Tools.Excel.Workbook ana maddesine belirtilen için Microsoft.Office.Interop.Excel.Workbook nesne; Aksi halde, false.
Notlar
Bir uygulama düzeyinde kapatmayı veya Excel çalışma kitabını kaydetmeden önce kalıcı olmasını istediğiniz yönetilen denetimleri varlığını sınamak için eklenti de, bu yöntemi çağırın.
[!NOT]
workbook Parametresi türü Microsoft.Office.Interop.Excel._Workbook, üst arabiriminin olduğu Microsoft.Office.Interop.Excel.Workbook.Bu nedenle, bu yöntem her iki türdeki nesneleri kabul edebilirsiniz: Microsoft.Office.Interop.Excel._Workbook ve Microsoft.Office.Interop.Excel.Workbook.Genellikle, bir Excel çalışma kitabına başvuru yaptığınızda, kullandığınız bir Microsoft.Office.Interop.Excel.Workbook.
Örnekler
Aşağıdaki kod örneği, geçerli çalışma kitabında bir ilişkili ana öğe sahip olup olmadığını denetler.Çalıştır buradan bu kodu kullanmak için ThisAddIn Excel eklentisi sınıfında hedefleyen proje .NET Framework 4.
Private Sub Application_WorkbookBeforeSave( _
ByVal Wb As Microsoft.Office.Interop.Excel.Workbook, _
ByVal SaveAsUI As Boolean, _
ByRef Cancel As Boolean) Handles Application.WorkbookBeforeSave
If Globals.Factory.HasVstoObject(Wb) = True Then
For Each interopSheet As Excel.Worksheet In Wb.Worksheets
If Globals.Factory.HasVstoObject(interopSheet) = True Then
Dim vstoSheet As Worksheet = Globals.Factory.GetVstoObject(interopSheet)
If vstoSheet.Controls.Count > 0 Then
System.Windows.Forms.MessageBox.Show( _
"The VSTO controls are not persisted when you" _
+ " save and close this workbook.", _
"Controls Persistence", _
System.Windows.Forms.MessageBoxButtons.OK, _
System.Windows.Forms.MessageBoxIcon.Warning)
Exit For
End If
End If
Next
End If
End Sub
void Application_WorkbookBeforeSave(
Microsoft.Office.Interop.Excel.Workbook Wb, bool SaveAsUI,
ref bool Cancel)
{
if (Globals.Factory.HasVstoObject(Wb) == true)
{
foreach (Excel.Worksheet interopSheet in Wb.Worksheets)
{
if (Globals.Factory.HasVstoObject(interopSheet) == true)
{
Worksheet vstoSheet = Globals.Factory.GetVstoObject(interopSheet);
if (vstoSheet.Controls.Count > 0)
{
System.Windows.Forms.MessageBox.Show(
"The VSTO controls are not persisted when you"
+ " save and close this workbook.",
"Controls Persistence",
System.Windows.Forms.MessageBoxButtons.OK,
System.Windows.Forms.MessageBoxIcon.Warning);
break;
}
}
}
}
}
.NET Framework Güvenliği
- Anında arayanlar için tam güven. Bu üye kısmen güvenilen kodla kullanılamaz. Daha fazla bilgi için bkz. Kısmen güvenilen kod kitaplıklarını kullanma.