如何在FastColoredTextBox中复制,粘贴和剪切?

西拉

我需要三个功能:复制,粘贴,剪切,

到目前为止,对于使用我的方法FastColoredTextBox ..来说,工作已经完成,但是之后,

光标的位置改变了,我不知道如何将其保持在原处

以前。

这是我的方法:

    private void OnMouseMenuCut(object sender, EventArgs e)
    {
        var sPoint = rtbScript.SelectionStart;
        var ePoint = rtbScript.SelectionLength;

        var text = rtbScript.SelectedText;
        rtbScript.Text = rtbScript.Text.Remove(sPoint, ePoint);

        Clipboard.SetText(text.Replace("\n", "\r\n"));
        rtbScript.Text = rtbScript.Text.Insert(sPoint, text);
    }

    private void OnMouseMenuCopy(object sender, EventArgs e)
    {
        if (string.IsNullOrEmpty(rtbScript.SelectedText)) return;
        Clipboard.SetText(rtbScript.SelectedText.Replace("\n", "\r\n"));

    }

    private void OnMouseMenuPaste(object sender, EventArgs e)
    {
        if (!Clipboard.ContainsText()) return;
        var index = rtbScript.SelectionStart;

        rtbScript.Text = rtbScript.Text.Insert(index, Clipboard.GetText());
    }

另外,如果有更好的方法来执行这些功能,请发布..

谢谢!

战车

对于RichTextBox,您的代码比失去Cursor的位置有更多的问题,它还会丢失所有格式!以下是一些效果更好的版本:

    private void OnMouseMenuCut(object sender, EventArgs e)
    {
        var sPoint = rtbScript.SelectionStart;
        var text = rtbScript.SelectedText;

        rtbScript.Cut();

        Clipboard.SetText(text.Replace("\n", "\r\n"));
        rtbScript.SelectionStart = sPoint;
    }

    private void OnMouseMenuCopy(object sender, EventArgs e)
    {
        if (string.IsNullOrEmpty(rtbScript.SelectedText)) return;
        Clipboard.SetText(rtbScript.SelectedText.Replace("\n", "\r\n"));
    }

    private void OnMouseMenuPaste(object sender, EventArgs e)
    {
        if (!Clipboard.ContainsText()) return;
        var index = rtbScript.SelectionStart;

        rtbScript.SelectedText = Clipboard.GetText();
        rtbScript.SelectionStart = index + Clipboard.GetText().Length;
    }

注意:您绝不能更改RTB的Text属性,否则会弄乱格式!

自从您写到这也可以解决您的问题后,FastColoredTextBox我就取消了解决方案。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在vim中剪切整行并粘贴?

在Python中剪切和粘贴文件或目录

如何从JavaScript剪切,复制和粘贴到用户剪贴板

如何剪切和粘贴数据透视表?

如何在Windows远程桌面RDC中从Mac剪切和粘贴到Windows

如何解决可能的剪切和粘贴错误。

摩纳哥编辑复制/剪切/粘贴操作

从长按菜单中剪切,复制和粘贴看起来像“材质”按钮

如何在AppleScript和BBEdit中剪切文本?

如何在新数据框中剪切和粘贴与下一列相同的列?

Neovim中的“自动”选项卡和复制/剪切/粘贴剪贴板

如何在不使用鼠标的情况下剪切和粘贴终端I / O?

将Excel中的表格从工作表1复制到工作表2,而无需剪切和粘贴

如何在Mac OS文件打开对话框中剪切/粘贴文件路径?

如何在Excel中复制和粘贴而不会覆盖

Windows中的“发送到”和“复制或剪切并粘贴”方法有什么区别?

php:如何在文件中剪切和粘贴行

如何在Vim编辑器中剪切和粘贴行?

在QGraphicsView中剪切/复制/粘贴

剪切和粘贴命令

如何在xterm中启用剪切或复制粘贴

如何在Richtextbox控件中进行复制剪切粘贴?

如何在Visual Studio代码扩展中检测复制和剪切动作?

如何在Excel中剪切和插入粘贴多行?

如何在1列中复制范围和粘贴

Python复制,剪切和粘贴检测

如何恢复在剪切和粘贴过程中丢失的文件

Excel VBA - 在工作簿中禁用复制/剪切粘贴

如何在 Excel 中复制和粘贴动态范围?