Wie fügt man in Word zur Laufzeit ein Eingabefeld aus den Entwicklertools
hinzu?
Die echten Formularfelder in Word aus dem Bereich
Entwicklertools sind vom Typ: ContentControl.
Diese unterscheiden sich von den reinen TextInputFields
dadurch, dass man die Eingabefelder formatieren und farblich anpassen kann.
In C# zur Laufzeit, programmatically
Das eigentliche hinzufügen kommt mit
Word.Document.ContentControls.Add(EingabeTyp,Zielort)
_doc.ContentControls.Add(wdContentControlText, _app.Selection.Range)
|
In C#, interop,vsto:
ContentControl textField = _doc.ContentControls.Add(WdContentControlType.wdContentControlText, _app.Selection.Range);
|
Betrifft:
Programmierung in vba, C#
Word ContentControl
Man findet die Entwickler-Eingabefelder unter Word-Menü->Entwicklertools->Steuerelemente->Aa (Nur-Text-Inhaltssteuerelement)
Anwendungsbeispiel:
Hier werden hinter jedem Foto ein echtes Eingabefeld
hinzugefügt.
Wenn eine Eingabe erfolgt ist, erscheint das Feld wie Text
Wenn das Feld den Focus erhält, wird das Feld grau
dargestellt.
Wenn keine Eingabe stattfindet, dann kann die Stelle wie
eine leere Zeile dargestellt werden oder farblich markiert werden.
C# Eingabecode, vsto im Beispiel
Hier werden hinter jedem Foto ein echtes Eingabefeld
hinzugefügt.
Wenn eine Eingabe erfolgt ist, erscheint das Feld wie Text
//< add formfield field >
act_Image_Range.InsertAfter("\n");
_app.Selection.Start=act_Image_Range.End;
ContentControl textField = _doc.ContentControls.Add(WdContentControlType.wdContentControlText, _app.Selection.Range);
textField.Title = "Bild-Text";
textField.MultiLine = true;
textField.LockContentControl = true;
textField.Appearance = WdContentControlAppearance.wdContentControlHidden;
textField.SetPlaceholderText(Text:" ");
//</ add formfield field >
|
In C#,
Visualstudio Vsto interop com