如何在Interop Word中的复选框控件旁边放置标签

时间:2016-10-13 09:37:15

标签: c# interop office-interop com-interop

如何并排放置2个项目,例如复选框和标签而不在Interop Word中创建新行?

这是我正在使用的代码。它正在创建一个新行,因为我将每个项目放在一个段落中。你是如何在一条线上做到的?

 //CheckBox
 Word.Paragraph checkBoxparagraph = document.Paragraphs.Add(ref missing);
 Word.ContentControl checkbox = checkBoxparagraph.Range.ContentControls.Add(Word.WdContentControlType.wdContentControlCheckBox);
 checkBoxparagraph.Range.InsertParagraphBefore();

//Label
Word.Paragraph label = document.Paragraphs.Add(ref missing);
label.Range.Text = "Checkbox Label";
label.Range.InsertParagraphAfter();

这是代码的输出:

enter image description here

1 个答案:

答案 0 :(得分:0)

也许有更好的方法,但我会将其包裹在内联形状中。很抱歉没有打算将它转换为C#,但你应该得到它的要点。如果你喜欢这个解决方案,你可能想要修改文本框的样式,高度和宽度

Sub CheckBoxLabel()
    Dim oDoc As Document
    Dim textBox As Shape
    Dim oRng As Range

    Set oDoc = ActiveDocument
    Set oRng = oDoc.Paragraphs(1).Range

    oRng.Text = "My label"

    Set textBox = oDoc.Shapes.AddTextbox(msoTextOrientationHorizontal, 0, 0, 40, 40, oRng.Characters(1))
    textBox.ConvertToInlineShape
    Set checkBox = textBox.TextFrame.TextRange.ContentControls.Add(wdContentControlCheckBox)

End Sub