【发布时间】:2016-01-05 03:10:57
【问题描述】:
您好,我正在寻找任何想法来制作类似的东西:
一些文字--------------------------------------------- ------
这个“------”我必须让按钮点击到行尾。
我的想法是在带有虚线前导符的制表符上制作它,但这会产生问题,因为当我尝试在此之后的文本中使用 ^t 时,它也会产生破折号。不能仅通过键入破折号来完成,因为第二个按钮是清除整个文档中的破折号。
这是我编写的代码,但就像我说的那样不好,因为在文档的任何其他位置的 ^t 都很糟糕
public void DashingSingleLane()
{
Word.Range rng = Globals.ThisAddIn.Application.Selection.Range;
if (rng.Start == rng.End)
{
float pageWidth = classDocument.PageSetup.PageWidth - classDocument.PageSetup.LeftMargin - classDocument.PageSetup.RightMargin;
foreach (Word.Paragraph singleParagraph in rng.Paragraphs)
{
if ((singleParagraph.Range.Text != "\r") && (singleParagraph.Range.Text.IndexOf("\t") == -1))
{
singleParagraph.TabStops.Add(pageWidth, Word.WdTabAlignment.wdAlignTabRight, Word.WdTabLeader.wdTabLeaderDashes);
Globals.ThisAddIn.Application.Selection.EndKey(Microsoft.Office.Interop.Word.WdUnits.wdLine);
Globals.ThisAddIn.Application.Selection.TypeText("\t");
}
}
}
}
我发现为了让它变得更好,我还需要将 Tabstop 与左对齐准确地放在句子的末尾。类似的东西
singleParagraph.TabStops.AddPosition_in_Point, Word.WdTabAlignment.wdAlignTabLeft, Word.WdTabLeader.wdTabLeaderDashes);
但我不知道如何获得那个位置
我从 2 天开始就在考虑这个问题,但我没有任何好主意。我希望有人能有一些好的想法。
【问题讨论】:
-
在我回答之前,我需要了解您通常如何在文档中使用 TAB 字符 (\t)。而且我需要了解您如何处理文档中的格式。如果我说您基本上是使用 Selection.TypeText 从左到右和从上到下“键入”内容并且您没有使用 Style 对象,我是否正确?
-
可能是的,我不确定我是否真的正确理解您的意思,但可能是的。
-
如果你还没有真正理解这个问题,是的,“可能是的”
Word 中最有效和最可靠的是使用 STYLES 来应用格式(包括制表位)。你应用适合情况的风格。在我们继续研究时请记住这一点... -
接下来,我需要进一步了解这份文档的结构。您提到需要“制表符”,否则在文本中:“但这会产生问题,因为当我尝试在文本中使用 ^t 之后,它也会产生破折号”。我们需要了解何时何地需要什么样的 Tab。您能否在原始问题中添加一个图表,说明文本块和选项卡并附上简短说明?附加问题:这种结构可以使用 TABLE 来实现吗?
-
那是什么风格?关于结构,它是普通的文本对齐段落,如果右侧没有任何内容,则单击用户需要获取制表位代替选择到车道的末尾,如果它是右侧文本宽度的距离。它不能通过表格完成,它必须只是文本
标签: c# ms-word visual-studio-addins tabstop word-addins