0

私は英語が苦手なので、ご理解いただければ幸いです。

昨日、クリップボードがコピーであることを知りました。

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

このコードは、textbox1からすべてをコピーして、textbox2に貼り付けます。

では、textbox1からほんの数語をコピーして、textbox2に貼り付けることは可能ですか?

わからない場合は、すべての行ではなく、ほんの数語をコピーしたいと思います。

この高レベルのコードがまだ私をもたらしたとしても:)

4

5 に答える 5

1

このためにクリップボードは必要ありません。あなたのユーザーはそれを気に入らないでしょう;)

次のような変数を作成するだけです。

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

その変数をスキップすることもできます。

あなたが本当にクリップボードを使いたいのなら、あなたのやり方はそれをすることです。

テキストボックスからテキストを取り出すために、部分文字列または正規表現を使用できます。 http://msdn.microsoft.com/en-us/library/aka44szs.aspx

幸運を

于 2012-07-10T16:50:02.560 に答える
1

Clipboard.GetText();コピーされた生の要素を返します。

あなたができることはそれらをいくつかの変数に保存することです:

string text = Clipboard().GetText();

次に、で何かを実行してtext、必要な要素を取得します。

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

これから取り除く主なアイデアは、GetText()あなたに文字列を与えることです。その文字列を適切と思われる方法でスライスしてさいの目に切って、その結果を利用するのはあなた次第です。

于 2012-07-10T16:47:20.867 に答える
0

私の考えでは、テキストボックスから選択したテキストを取得することをお勧めします。

使用しているテキストボックスの種類がわかりませんが、WPFの例を示すには、TextBox.SelectedTextプロパティを使用する必要があります。

于 2012-07-10T16:50:45.750 に答える
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();
于 2012-07-10T16:57:58.197 に答える
0

linqが好きです。:-)

これは、文字列を分割し、列挙可能で、1つに連結するための例です。

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 に答える