簡體   English   中英

C#如何將光標放在richtextbox中的位置

[英]c# how to place cursor at postion in richtextbox

我在WinForms中有一個richtextbox,並創建了復制和粘貼功能,並且可以在光標處復制和粘貼。 但是,一旦粘貼,我的光標就會移動到richtextbox的開頭。 如何使其保持在原位置或移至粘貼部分的末尾?

我努力了

Point p = new Point(Cursor.Position.X, Cursor.Position.Y);
rtbNotePad.PointToClient(p); //but does not work.

private void copyToolStripMenuItem_Click(object sender, EventArgs e)
{
    rtbNotePad.Copy();
}

private void pasteToolStripMenuItem_Click(object sender, EventArgs e)
{
    string pasteText = Clipboard.GetText(TextDataFormat.Text).ToString();
    Point p = new Point(Cursor.Position.X, Cursor.Position.Y);

    if (Clipboard.ContainsText())
    {
        rtbNotePad.Text = rtbNotePad.Text.Insert(rtbNotePad.SelectionStart, Clipboard.GetText(TextDataFormat.Text).ToString());
        rtbNotePad.PointToClient(p);
    }
}

您應該使用SelectionStart屬性來控制ReachtextBox的光標位置。

    private void pasteToolStripMenuItem_Click(object sender, EventArgs e)
    {
        string pasteText = Clipboard.GetText(TextDataFormat.Text).ToString();

        if (Clipboard.ContainsText())
        {
            var start = rtbNotePad.SelectionStart; // use this if you want to keep cursor where it was
            //start += pasteText.Length;    // use this if want to move cursor to the end of pasted text
            rtbNotePad.Text = rtbNotePad.Text.Insert(rtbNotePad.SelectionStart, Clipboard.GetText(TextDataFormat.Text).ToString());

            rtbNotePad.SelectionStart = start;
           // rtbNotePad.Focus();
        }
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM