2012-07-10 93 views
0

我英语不好,所以我希望你能理解这一点。剪贴板可以复制几个字?

我昨天得知剪贴板是复制的。

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

该代码将textbox1中的所有内容复制并粘贴到textbox2中?

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

如果你不明白,我想复制只有几个字不是所有的行。

即使这种高水平的代码仍然带给我:)

+4

是否有任何你使用剪贴板而不是变量的特殊原因? – 2012-07-10 16:46:17

+0

将textBox1.Text分配给一个字符串,并执行像substring这样的字符串操作以仅获取所需的子集并将其提供给Clipboard.SetText(copiedString) – roymustang86 2012-07-10 16:46:42

回答

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(); 
+0

所以这条线开始于“不”?或者它删除了这个词? – 2012-07-10 17:02:19

+0

它以“不”开头。您可以使用子字符串来查找整个单词的地点或者只是一个字母 - 但由于n已经用在句子中,我使用了“不”。从技术上讲,它只是发现了n的位置。它应该是“不令人兴奋” - 这就是它在我运行时所做的。它从那里开始,除非你指定了多长的空格,否则它会从该点切出到字符串的末尾。 – Skitterm 2012-07-10 17:04:58

+0

感谢!但我能做到这一点也会停在中间?像textBox1.Text.IndexOf(“name”);它停在“不”?没关系,我做这个textBox1.Text.LastIndexOf(“不”); textBox1.Text.Substring(index,index2); ,它的工作:) – 2012-07-10 17:07:31

1

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

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

string text = Clipboard().GetText(); 

然后做一些与text,得到你所需要的元素:

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

主要的主意,采取远离这是,GetText()会给你一个字符串。您可以按照您认为合适的方式切割和剪切该字符串,然后利用结果。

+0

可能可以做到这一点开始复制特定的单词?我的意思是说话 – 2012-07-10 16:56:36

1

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

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

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

你甚至可以跳过该变量。

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

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

好运

0

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

我不确定你正在使用的文本框的种类,但如此显示WPF的例子,你应该使用TextBox.SelectedText属性。

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;