2012-02-09 3 views
2

DataGridViewからセルデータをコピーするときに奇妙な問題が発生します。特定のフィールドをコピーするオプションを含むContextMenuStripがあります。メニューからこのオプションを選択すると、コピー/貼り付けが正確に行われるようになります。私は、この値を取ると、他のアプリに貼り付け、値が正しい場合貼り付け時にDataGridViewのCtrl-Cで迷惑文字が表示される

public static void CopyToClipboard(string value) 
{ 
    Clipboard.Clear(); 
    Clipboard.SetText(value); 
} 

:クリップボードにコピーする

私のコード。

DataGridViewのセルを選択し、キーCtrl-Cを使用してクリップボードにコピーすると、問題が発生します。クリップボードにコピーされた値は、notepadの単語で正しく表示されますが、値を貼り付けようとする内部アプリケーションがあり、文字が混乱してしまいます。コピー

私の値は12345678になり、この他のアプリで、結果は、私はそれがキー、その後に自分のコピーを呼び出しているCtrl-Cであることを確認しますDataGridViewKeyDownイベントを作成しようとしました-§-ý-:pC|yV-k²-û

なりクリップボードのコードでも同じことが起こります。

private void DataGridView_KeyDown(object sender, KeyEventArgs e) 
{ 
    if (e.Control && e.KeyCode == Keys.C) 
     CopyToClipboard(DataGridView2.CurrentCell.Value.ToString()); 
} 

私はCellEnterイベントを使用してクリップボードにコピーを呼び出した場合、それは正常に動作しますが、私は、セルが入力されるたびに、クリップボードにコピーしたくない...問題は、直接であるように思えますCtrl-Cキー。

private void DataGridView_CellEnter(object sender, DataGridViewCellEventArgs e) 
{ 
    CopyAccountToClipboard(DataGridView2.CurrentCell.Value.ToString()); 
} 

誰もこのような問題を抱えていますか?どのようにそれを修正するための任意の提案?

+0

それで、データ・セルの「Ctrl + C」と「KeyDown」+「Clipboard.SetText」の両方がそのアプリで混乱していると言っていますか? –

+0

はい、それは私が言っていることです。 – Taryn

+0

明白な質問は次のとおりです:_from_ notepad _into_その内部アプリケーションをコピーすると混乱しますか? –

答えて

2

私の推測では、あなたの他のアプリケーションはUnicodeを処理できません。

public static void CopyToClipboard(string value) 
{ 
    Clipboard.Clear(); 
    Clipboard.SetText(value, TextDataFormat.Text); 
} 

編集:その後、私の第二の推測は、複数のフォーマットでDataGridViewコピーテキストがCtrl+Cが押されたときということでしょう、そしてあなたの他のアプリケーションがで混乱しつつあるANSI形式のテキストを設定するためにあなたの方法を変更してみてください予期しない形式の存在。

クリックすると、次のロジックを実行するボタンをフォームに追加できますか?

string text = Clipboard.GetText(TextDataFormat.Text); 
Clipboard.Clear(); 
Clipboard.SetText(text, TextDataFormat.Text); 

次に試してみてください。

  1. Ctrl+C
  2. を使用してクリップボードにあなたのセルをコピーし、あなたの他のアプリケーション

内のテキストを貼り付けると、ボタン

  • をクリックしないでください上記のコードをDataGridView_KeyDownイベントハンドラでテストします(まだ)。

  • +0

    私はすでにそれを試して、それはまだ混乱して表示されます。 – Taryn

    関連する問題