私は2つのWinformアプリケーションを持っており、そのテキストをコピーして貼り付けようとすると、ProcessCmdKey
貼り付けられていないことを確認すると正しく機能します..
しかし、メモ帳にテキストを貼り付けようとすると、貼り付けられます...同じアプリケーションでテキストのコピーと貼り付けを実現したいだけです
他の Windows フォームに焦点を当てる場合、テキストを貼り付ける必要はありません...方法はありますか..
private const Keys CopyKeys = Keys.Control | Keys.C;
private const Keys PasteKeys = Keys.Control | Keys.V;
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
bool bVal = false;
Process[] p2 = Process.GetProcesses();
foreach (Process pro in p2)
{
if (string.Compare(pro.ProcessName, "TestForm.vshost", true) == 0 && (keyData == CopyKeys) || (keyData == PasteKeys))
{
bVal = true; // Text will be pasted
return true;
}
else
return base.ProcessCmdKey(ref msg, keyData); // Text will not be pasted
}
return bVal;
}
これは正しく動作します。メモ帳のワードパッドでも同じことを達成しようとすると。貼り付けです。