Başka hi bütün eksik Kapat olay,Excel otomasyon:
C# Interop aracılığıyla Excel otomasyonu yapıyorum ve bir çalışma kitabı kapandığında haberdar olmak istiyorum. Ancak, çalışma kitabında Kapatma olayı veya uygulamada bir Çık olayı yoktur.
Bunu daha önce yapmış olan var mı? Kapsanan çalışma kitabına tepki veren bir kod parçasını nasıl yazabilirim (yalnızca çalışma kitabı gerçekten kapalıysa çalıştırılırsa çalıştırılır)? İdeal olarak, çalışma kitabını kapattıktan sonra olması gerekir, böylece tüm değişiklikleri yansıtacak şekilde dosyaya güvenebilirim. Bugüne kadar ne buldum yaklaşık
Detayları:
bir BeforeClose() olay yok, ancak kaydedilmemiş değişiklikler varsa kullanıcı, onları kurtarmak için olsun isteniyor önce bu olay ortaya elimden an çok olayı işleyin, son dosyam yok ve COM nesnelerini yayınlayamıyorum, gerek duyduğum/yapmam gereken şeyler. Kullanıcının kapanışı iptal etmeyi seçebileceğinden, çalışma kitabının gerçekten kapalı olup olmayacağını bile bilmiyorum.
Daha sonra bir BeforeSave() olayı var. Bu nedenle, kullanıcı kaydedilmemiş değişiklikleri kaydetmek için "Evet" i seçerse, Önceden Kaydetme() BeforeClose() öğesinden sonra çalıştırılır. Bununla birlikte, kullanıcı "İptal" seçeneğini seçerse, "dosya-> kaydet" seçeneğine ulaşırsa, aynı olay sırası yürütülür. Ayrıca, kullanıcı "Hayır" seçerse, BeforeSave() hiç çalıştırılmaz. Aynı şey kullanıcının bu seçeneklerden herhangi birini tıklamadığı sürece de geçerlidir.
Merhaba Nelson - evet, bunu zaten yaptım. Sorun şu ki "ve BeforeSave()" teklifinizin bir parçası semidecidable. Eğer çağrılmazsa, bekleyebilirim ama asla bunun iptal edilip edilmediğine karar vermez, hayır seçmez, ya da henüz herhangi bir düğmeye henüz tıklamamıştır. – chiccodoro