2016-10-10 8 views
0

Ich versuche, ein Word-Dokument mit Kontrollkästchen darin zu erstellen Microsoft.Office.Interop.Word verwenden. Ich habe die folgenden Hinweise verwendet, dies zu tun:Kontrollkästchen deaktiviert für Word-Dokument erstellt mit Microsoft.Office.Interop.Word

Ich habe erfolgreich ein Word-Dokument mit einer Checkbox erzeugt, aber leider ist sie deaktiviert. Was ich versuche zu erreichen, ist ein Kontrollkästchen, das aktiviert/deaktiviert werden kann.

In der Abbildung unten sehen Sie, dass ich 3 Kontrollkästchen habe. Das erste man mit Microsoft.Office.Interop.Word erzeugt und die 2. und 3. diejenigen, wurden manuell in Word 2016. Die erste erstellt wurden, können nicht markiert werden aktiviert/deaktiviert, während die 2. und 3. diejenigen, genau wie eine normale Kontrollkästchen verhalten

enter image description here

Und das ist der Code, den ich verwendet habe, um das Word-Dokument zu generieren.

private void btnCreateWordInterop_Click(object sender, EventArgs e) 
    { 
     Word._Application word_app = new Word.ApplicationClass(); 
     word_app.Visible = true; 

     object missing = Type.Missing; 
     Word._Document word_doc = word_app.Documents.Add(ref missing, ref missing, ref missing, ref missing); 
     Word.Paragraph para = word_doc.Paragraphs.Add(ref missing); 
     para.Range.Text = "Chrysanthemum Curve"; 
     object style_name = "Heading 1"; 
     para.Range.set_Style(ref style_name); 
     para.Range.InsertParagraphAfter(); 

     //Microsoft.Office.Interop.Word.Range range = 
     para.Range.Collapse(ref missing); 
     Word.FormField checkBox = word_doc.FormFields.Add(para.Range, Word.WdFieldType.wdFieldFormCheckBox); 
     para.Range.InsertAfter(" Checkbox generated by Microsoft.Office.Interop.Word"); 

     // Save the document. 
     object filename = @"C:\Users\Username\Desktop\InteropWord.docx"; 

     word_doc.SaveAs(ref filename, ref missing, ref missing, 
      ref missing, ref missing, ref missing, ref missing, 
      ref missing, ref missing, ref missing, ref missing, 
      ref missing, ref missing, ref missing, ref missing, 
      ref missing); 

     //Close. 
     object save_changes = false; 
     word_doc.Close(ref save_changes, ref missing, ref missing); 
     word_app.Quit(ref save_changes, ref missing, ref missing); 

     MessageBox.Show("Saved"); 
    } 

Wie kann ich das generierte Kontrollkästchen aktivieren?

Antwort

1

Anstatt FormFields zu verwenden, würde ich empfehlen, Content Controls dafür zu verwenden. Diese sind benutzerfreundlicher und einfacher zu bearbeiten.

Ändern Sie diese Zeile:

Word.FormField checkBox = word_doc.FormFields.Add(para.Range, Word.WdFieldType.wdFieldFormCheckBox); 

eine Content Control verwenden würde es so etwas wie (von der Oberseite meines Kopfes)

Word.ContentControl checkbox = para.Range.ContentControls.Add(Word.WdContentControlType.wdContentControlCheckBox); 
+0

oh Junge sein! es funktionierte! Vielen Dank! – jmc

Verwandte Themen