Empfohlener Beitrag

Microsoft Word 2013: 5 aufregende neuigkeiten

N ach einer Reihe von Einblicken, Microsoft letzten Monat endlich Windows 8 und die hausgebrauten Oberfläche Tablette, die von Windows Ph...

Dienstag, 9. April 2013

Interessantes über Platzhalter in Word Inhalt Controls (für Entwickler)

Inhalt Kontrollen sind eine hervorragende Möglichkeit, 'prompt' für Benutzer bereitzustellen. Die 'prompt' Text (zB "Klicken Sie hier und geben Sie den Namen des Managers" oder "Wählen Sie das Datum des Berichts") wird durch einen Platzhalter zur Verfügung gestellt.
Dieser Artikel beschreibt einige der Merkwürdigkeiten über diese Platzhalter in das Word-Objektmodell.

PlaceholderText ist ein Objekt, nicht im Text

Ein ContentControl Objekt hat eine PlaceholderText Eigentum. Sie würden für das Denken wäre es ein String zurück vergeben werden. Aber Sie würden falsch sein!
Ein Wort inhaltlicher Kontrolle zu .PlaceholderText ist ein BuildingBlock Objekt.
Um den Platzhaltertext einzustellen, müssen Sie etwas wie:
  MyContentControl.SetPlaceholderText Text: = "Klicken Sie hier und geben Sie den Titel des Berichts" 
Oder können Sie den Platzhaltertext, um auf einen Bereich oder ein bestehendes Gebäude Blocks verweisen.
Um den Platzhaltertext lesen, verwenden Sie die Eigenschaft Value.:
  MsgBox MyContentControl.PlaceholderText.Value 

Die PlaceholderText Objekt ist anfällig für Verschwinden

Sie können nicht auf der Graf PlaceholderText Objekt zur Verfügung stehen. Es kommt häufig verschwindet. So wickeln Sie alle Verweise auf die .PlaceholderText Objekt in irgendeiner Fehlerprüfung. Something like this:
  Dim cc Als ContentControl

     'Angenommen es gibt mindestens einen Inhalt im Dokument
     Set c = ActiveDocument.ContentControls (1)

     'Stellen Sie den Platzhaltertext
     If Not cc.PlaceholderText Is Nothing Then
         cc.SetPlaceholderText Text: = "My Text hier"
     End If

Wort oft nicht wissen, ob ein inhaltlicher Kontrolle zeigt seine Platzhaltertext

Laut Microsoft-Dokumentation, die .ShowingPlaceholderText Immobilie
Gibt einen Boolean, ob der Platzhaltertext für den Inhalt Steuerelement angezeigt wird anzeigt. Read-only.
Meine Erfahrung ist, dass der Rückgabewert für .ShowingPlaceholderText falschen etwa die Hälfte der Zeit ist. Oder ist es richtig, etwa die Hälfte der Zeit.
Manchmal wird das Dokument anzuzeigen den Platzhaltertext, aber .ShowingPlaceholderText wird dies leugnen. Manchmal .ShowingPlaceholderText wird behaupten, dass das Dokument zeigt den Platzhaltertext, aber es ist nicht.
Sie können einfach nicht auf sie verlassen. So, um zu bestimmen, ob das Dokument zeigt den Platzhaltertext, vergleichen Sie die .PlaceholderText.Value mit dem ContentControl.Range.Text .
Allerdings kann man nicht vergleichen Sie den Text des Bildes mit der Platzhalter das Bild. So scheint es nicht möglich, in das Objekt-Modell, ob ein Bild inhaltlicher Kontrolle zeigt die Platzhalter bestimmen.

Einige inhaltlicher Kontrolle kann eine PlaceholderText Objekt, aber kein Platzhaltertext

Image-Steuerelemente, Gruppe Kontrollen und (in Word 2010) Kontrollkästchen-Steuerelemente haben eine PlaceholderText Objekt, aber nie einen .Value , vielleicht aus offensichtlichen Gründen. Seien Sie vorsichtig, dies, wenn Sie durch alle Inhalte Steuerelemente im Dokument Radfahren sind. Das .Value Eigenschaft auf ein Bild angewendet, Gruppe oder Checkbox inhaltlicher Kontrolle einen Fehler zurückgibt (91: "Objektvariable oder With-Block Variable nicht gesetzt ') egal, was die inhaltliche Kontrolle ist in dem Dokument angezeigt wird.

Word nicht korrekt berichten Stil von Platzhaltertext entweder im Objektmodell oder in der Benutzeroberfläche verwendet

Standardmäßig zeigt Word Platzhaltertext mit dem eingebauten Placehoder Text Stil. Sie können diese Art, wie Sie können alle integrierten Absatz-Stil. Das heißt, können Sie ändern den Stil zu machen, grün oder rosa oder unterstrichen oder was auch immer.
Sie können eine andere Absatzvorlage der Platzhaltertext (speziell, muss eine sogenannte verbunden Absatzformat sein) gelten, oder Sie können direkte Formatierung anzuwenden.
Was ich nicht tun kann, ist zu finden jede mögliche Weise zu bestimmen, was Stil Platzhaltertext angewendet wurde.
Und deshalb können wir nicht eine Routine zu "säubern" Inhalte in einem Dokument durch erneutes Auftragen Platzhaltertext zum Inhalt Kontrollen.

Keine Kommentare:

Kommentar veröffentlichen