Word (2007) og Events....
Hej Udviklere....Jeg sidder og udvikler på en applikation som holder styr på nogle Word-filer, disse skal så kunne hentes fra serveren og editeres og hvis/når de så bliver gemt, så skal applikationen kunne poppe op med en messagebox, som spørger om man vil lægge den nye udgave af dokumentet tilbage på serveren.
Åbning af Word, åbning af dokumentet, etc. er jo nemt nok, men hvordan lytter man på et DocumentSaved-event som ikke er der!? ;-)
Jeg har dette ret banale kode, som har 4 knapper, som en lille test/forsøg, som kan åbne Word, åbne en fildialog (og derefter åbner Word filen), lukke dokumentet og lukke Word (samtidig har jeg smidt en lytter på BeforeSave-eventet, men dette er jo ikke umiddelbart til megen nytte eller hva?):
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Word = Microsoft.Office.Interop.Word;
using Microsoft.Office.Interop.Word;
namespace WordTEST
{
public partial class Form1 : Form
{
Word.ApplicationClass word;
object missing = System.Reflection.Missing.Value;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
word = new Word.ApplicationClass();
word.Visible = true;
word.DocumentBeforeSave += new Word.ApplicationEvents4_DocumentBeforeSaveEventHandler(EventRaised);
}
private void button2_Click(object sender, EventArgs e)
{
OpenFileDialog dialog = new OpenFileDialog();
if (dialog.ShowDialog() == DialogResult.OK)
{
object filename = dialog.FileName;
object readOnly = false;
object isVisible = true;
//Word.Document aDoc = word.Documents.Open(ref filename, ref missing, ref readOnly, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref isVisible);
word.Documents.Open(ref filename, ref missing, ref readOnly, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref isVisible, ref missing, ref missing, ref missing, ref missing);
}
}
private void button3_Click(object sender, EventArgs e)
{
word.Documents.Close(ref missing, ref missing, ref missing);
}
private void button4_Click(object sender, EventArgs e)
{
object savechanges = false;
word.Quit(ref savechanges, ref missing, ref missing);
}
private void EventRaised(Document Doc, ref bool SaveAsUI, ref bool Cancel)
{
MessageBox.Show("Event raised!");
}
}
}
Nogen som har nogle kommentarer eller gode forslag til at kunne poppe op med en messagebox, når filen bliver gemt i Word?
Hilsen Psypher