0

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

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

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

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

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

如果你不明白,我只想复制几个单词而不是全部行。

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

4

5 回答 5

1

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

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

string text = Clipboard().GetText();

然后用text, 做一些事情来获得你需要的元素:

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

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

于 2012-07-10T16:47:20.867 回答
1

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

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

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

您甚至可以跳过该变量。

如果您真的想使用剪贴板,您的方式就是这样做。

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

祝你好运

于 2012-07-10T16:50:02.560 回答
0

我喜欢linq。:-)

这是一个拆分字符串、可枚举字符串并将其合并为一个的示例:

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;
于 2012-07-10T17:20:52.473 回答
0

大牛,substring 方法很好用。你只需告诉它你想在哪里获取一段文本,它就会创建一个新的字符串。

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();
于 2012-07-10T16:57:58.197 回答
0

在我看来,从文本框中获取选定的文本是更好的主意。

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

于 2012-07-10T16:50:45.750 回答