剪贴板可以复制几个字?

时间:2012-07-10 16:45:08

标签: c#

我的英语很弱,所以我希望你能理解这一点。

我昨天得知剪贴板是副本。

//textBox1.Text = "My name is not exciting";
Clipboard.SetText(textBox1.Text);
textBox2.Text = Clipboard.GetText();

此代码会复制textbox1中的所有内容并将其粘贴到textbox2中吗?

那么可以从textbox1中复制几个单词并将其粘贴到textbox2中吗?

如果你不理解,我只想复制几个字而不是全部。

即使这个高级代码仍然带给我:)

5 个答案:

答案 0 :(得分:1)

Clipboard.GetText();将返回原始复制的元素。

您可以做的是将它们保存到某个变量:

string text = Clipboard().GetText();

然后使用text做一些事情,以获得所需的元素:

textBox2.Text = text.Substring(0, 10); // An example.

要脱离这一点的主要想法是,GetText()会给你一个字符串。您可以按照自己认为合适的方式对字符串进行切片和切块,然后再使用结果。

答案 1 :(得分:1)

您不需要剪贴板。您的用户不会喜欢;)

只需创建一个这样的变量:

string box1Content = textBox1.Text;
textBox2.Text = boxContent;

您甚至可以跳过该变量。

如果你真的想使用剪贴板,你可以这样做。

只是从文本框中获取一些文本,您可以使用子字符串或正则表达式。 http://msdn.microsoft.com/en-us/library/aka44szs.aspx

祝你好运

答案 2 :(得分:0)

我认为最好从文本框中选择文本。

我不确定你使用的是哪种文本框但是在WPF上显示示例你应该使用TextBox.SelectedText属性。

答案 3 :(得分:0)

丹尼尔,子串方法是一个很好用的方法。你只需告诉它你想要一段文字,它就会创建一个新的字符串。

textBox1.Text = "MY name is not exciting";
        //pretend you only want "not exciting" to show
        int index = textBox1.Text.IndexOf("not");//get the index of where "not" shows up so you can cut away starting on that word.

        string partofText = textBox1.Text.Substring(index);//substring uses the index (in   this case, index of "not") to take a piece of the text. 

        Clipboard.SetText(partofText);
        textBox2.Text = Clipboard.GetText();

答案 4 :(得分:0)

我喜欢linq。 : - )

这是一个分割字符串的例子,可以枚举它和concats:

textBox1.Text = "My name is not exciting";

int firstWord = 2;
int lastWord = 4;

string[] wordList = textBox1.Text.Split(new[] { ' ', '.', ',' }, StringSplitOptions.RemoveEmptyEntries);

string newText = string.Concat(wordList.Where((word, count) => count >= firstWord - 1 && count < lastWord).Select(w => w + " ")).TrimEnd();

Clipboard.SetText(newText);
textBox2.Text = Clipboard.GetText();

// Result: "name is not"

编辑:没有剪贴板,您只需使用此行

即可
textBox2.Text = newText;