Hej testa C# office.interop.word
Jag gör en applikation som öppnar ett befintligt Word dokument, skriver lite text, sparar, och sedan vill jag stänga Word. Applikationen fungerar, den öppnar och stänger Word, men jag får denna varning i Visual Studio 2010 och framework 4.0 och Office 2007.
Detta är varningen:
"Warning Ambiguity between method 'Microsoft.Office.Interop.Word._Application.Quit(ref object, ref object, ref object)' and non-method 'Microsoft.Office.Interop.Word.ApplicationEvents4_Event.Quit'. Using method group. X:\Websites\Windows apps\Order_Västanfors\Order Västanfors\Order_Västanfors\Form1.cs 1120 25 Order_Västanfors"
Har Googlat men hittar ingen lösning som fungerar, koden nedan fungerar. Ska jag bara strunta i varningen?
Detta är koden jag använder:
private void DoDoc_2()
{
Microsoft.Office.Interop.Word.Application appWord = new Word.Application();
try
{
// skapa sökväg
string strFile2 = Properties.Settings.Default.Dok_26_W;
string strPathToFile2 = txtPathToNewFolderUTV.Text + "\\" + strFile2;
appWord.Visible = false;
appWord.Documents.Open(strPathToFile2);
for (int i = 1; i <= 5; i++)
{
if (i == 1)
{
strFind = "<onr>";
strReplace = lblOrderNrUTV.Text;
}
if (i == 2)
{
strFind = "<ordernamn>";
strReplace = lblOrderNamnUTV.Text;
}
if (i == 3)
{
strFind = "<tomtb>";
strReplace = lblFastBeteckning.Text;
}
if (i == 4)
{
strFind = "<komm>";
strReplace = lblKommun.Text;
}
if (i == 5)
{
strFind = "<best>";
strReplace = lblBestallare.Text;
}
Word.Find findObject = appWord.Selection.Find;
findObject.ClearFormatting();
findObject.Text = strFind;
findObject.Replacement.ClearFormatting();
findObject.Replacement.Text = strReplace;
object replaceAll = Word.WdReplace.wdReplaceAll;
//findObject.Execute();
object missing = System.Type.Missing;
findObject.Execute(ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing, ref missing,
ref replaceAll, ref missing, ref missing, ref missing, ref missing);
}
appWord.Documents[strPathToFile2].Save();
}
catch (Exception errdok3)
{
MessageBox.Show("Error in process Word. " + errdok3.Message, "Internal Error 26", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
finally
{
progressBar1.PerformStep();
appWord.Quit();
if (appWord != null)
{
Marshal.ReleaseComObject(appWord);
}
}
}
MVH,
JockeSv: C# office.interop.word
((Microsoft.Office.Interop.Word._Application) appWord)).Quit()