如何从文本框中剪切文本并复制到剪贴板

本文关键字:文本 复制 剪贴板 | 更新日期: 2023-09-27 18:31:19

让我先说我是一个初学者程序员,我知道我最后的代码语句是不正确的。 我正在编写一个记事本应用程序,但我不太知道如何剪切文本。 我知道,当您剪切文本时,您所做的只是将所选文本复制到剪贴板,然后删除所选文本。正如我所说,我知道语法是错误的,我只是想展示我试图做什么。

private void pasteToolStripMenuItem_Click(object sender, EventArgs e)
        {
            textBox1.Text = Clipboard.GetText(); // will paste whatever text is copied to clipboard
        }
        private void copyToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Clipboard.SetText(textBox1.SelectedText);//copies whatever text is selected in my textbox
        }
        private void clearClipboardToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Clipboard.Clear();//clears clipboard
        }
        private void cutToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Clipboard.SetText(textBox1.SelectedText);
            textBox1.SelectedText == "";//line I know is incorrect
        }

如何从文本框中剪切文本并复制到剪贴板

最好的方法是将操作委托给TextBox


复制

也就是说,如果要手动执行此操作,则代码行的问题在于您使用的是==运算符而不是=运算符。您编写的代码可以使用正确的运算符。:)

请注意,textBox1.SelectedText = Clipboard.GetText();将是一个更典型的"粘贴"实现。如果这真的是您要做的,那么替换整个文本框的文本并没有错,但它可能会让一些用户感到惊讶。

TextBox有自己的CutCopyPaste方法。 这正是您应该首先阅读文档的原因。 毫不奇怪,TextBox类的文档列出了这些方法。

在 CompactFramework 中,我们没有 TextBox.SelectedText.Copy() 方法,但我们可以使用公共静态类 Clipboard:

TextBox1.SelectAll();
if (TextBox1.SelectionLength > 0)
{
    Clipboard.SetDataObject(TextBox1.SelectedText);
}