Readdy Write

ContentControl Eingabefelder in Word erstellen. C#

02.11.2018 (👁99)

Eingabefelder in Word erstellen. C#

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#

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

 


0,00 €