2016-07-08 6 views
0

ボタンを含むwinformファイルがあります。copyBtnをクリックすると、リストボックスの内容(stringsListBox)をクリップボードにコピーする必要があります。クリップボードにエスケープ文字が残りません

以下の実装を使用すると、テキスト文書に貼り付けるとエスケープ文字\nが認識されません。

クリップボードにコピー中にエスケープ文字を維持できますか?

private void copyBtn_Click(object sender, EventArgs e) 
{ 
    string copyString = ""; 

    if(stringsListBox.Items.Count > 0) 
    { 
     foreach(string item in changesListbox.Items) 
     { 
      copyString += item + "\n"; 
     } 
    } 

    Clipboard.SetText(copyString); 
} 

リストボックスには、次の値が含まれている場合:私はそれは、1行に1つの番号であることを望む場合には

1234 

:私は出力をテキストファイルに貼り付けるときに(1, 2, 3, 4)を1行にあります:テキストファイルを扱う場合

1 
2 
3 
4 
+4

可能性がありますが、 '\ n'はまだありますが、貼り付けるテキストエディタで改行が' \ r \ n'であることが必要です。 –

+2

@CodyGrayが述べたことに加えて、各アイテムに '' \ n "'ではなく 'Environment.NewLine'を追加してみてください。 – Andy

+0

ちょうどメモとして。 'Clipboard.SetText'は時には失敗することがあります(少なくともJavaでは、これはウィンドウのことだと思います)。将来的には、クリップボードの内容を連続的に設定してチェックする' Task'クリップボードに目的のテキストが含まれていれば戻ってきます。 – KDecker

答えて

3

は、あなたが使用する必要が\r\n

copyString += item + "\r\n"; 

またはそれ以上:

copyString += item + Environment.NewLine; 

ファイル内の結果:

1 
2 
3 
4 

ドキュメントから:Environment.NewLineプロパティ

**アクション:返すプロパティ指定されたプラットフォーム用の適切な改行文字列。

**戻り値:Win32では\ r \ nです。

関連する問題