-1

こんにちは私はそのようなものを作るためのアイデアを探しています:

テキスト------------------------------------------------ ---

この「------」は、ボタンをクリックして行末まで作成する必要があります。

私の考えは、破線のリーダーを使用してタブストップで作成することでしたが、この後にテキスト内で ^t を使用しようとするとダッシュも作成されるため、問題が発生します。ダッシュを入力するだけでは実行できません。2 番目のボタンは、ドキュメント全体からそのダッシュをクリアするためです。

これは私が作成したコードですが、私が言ったように、ドキュメントの他の場所での ^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");

                }

            }
        }
    }

それをうまく行うには、文の最後に正確に左揃えでタブストップを配置する必要があることがわかりました。そんな感じ

singleParagraph.TabStops.AddPosition_in_Point, Word.WdTabAlignment.wdAlignTabLeft, Word.WdTabLeader.wdTabLeaderDashes);

しかし、その位置を適切に取得する方法がわかりません

私はその問題について2日から考えていますが、良い考えがありません. 誰かが良い考えを持っていることを願っています。

4

1 に答える 1

0

現在の選択 (または範囲) の水平位置を決定するために、Information プロパティを使用できます。これは、返す値を Word に指示する WdInformation 列挙体のメンバーを受け取ります。

ページの左側からの値wdHorizontalPositionRelativeToPage、または「テキスト境界」からの値として情報を返すことができます。単列 - wdHorizontalPositionRelativeToTextBoundary

たとえば、次のようになります。

//Position is returned in POINTS, which is what TabStop uses
float selPosition = Selection.get_Information(Word.WdInformation.wdHorizontalPositionRelativeToTextBoundary);
singleParagraph.TabStops.Add(selPosition, Word.WdTabAlignment.wdAlignTabRight, Word.WdTabLeader.wdTabLeaderDashes);
于 2016-01-11T18:08:18.983 に答える