2016-10-13 10 views
0

Как вы размещаете 2 элемента бок о бок, например флажок и метку, не создавая новую строку в Interop Word?Как разместить ярлык рядом с элементом управления флажком в 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

ответ

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