リッチテキストボックスC#アプリケーションのコピー/貼り付け機能をオーバーライドする方法を教えてください。 ctrl-c/ctrl-vを含め、右クリックのコピー/貼り付けをクリックします。リッチテキストボックスのコピーと貼り付けをオーバーライドする方法
これはWPF richtextBoxです。
リッチテキストボックスC#アプリケーションのコピー/貼り付け機能をオーバーライドする方法を教えてください。 ctrl-c/ctrl-vを含め、右クリックのコピー/貼り付けをクリックします。リッチテキストボックスのコピーと貼り付けをオーバーライドする方法
これはWPF richtextBoxです。
コマンド機能を無効にするには、次の
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if (keyData == (Keys.Control | Keys.C))
{
//your implementation
return true;
}
else if (keyData == (Keys.Control | Keys.V))
{
//your implementation
return true;
}
else
{
return base.ProcessCmdKey(ref msg, keyData);
}
}
、右クリックが遅すぎる、これはWPFの質問に気づいたWinformsのリッチテキストボックス
--EDIT--
ではサポートされていません。使用している間
//doc.Editorは、リッチテキストボックス
DataObject.AddPastingHandler(doc.Editor, new DataObjectPastingEventHandler(OnPaste));
DataObject.AddCopyingHandler(doc.Editor, new DataObjectCopyingEventHandler(OnCopy));
private void OnPaste(object sender, DataObjectPastingEventArgs e)
{
}
private void OnCopy(object sender, DataObjectCopyingEventArgs e)
{
}
私はこれを使用:WPFでこれを行うには、カスタムコピーと貼り付けハンドラをアタッチする必要があります。ハンドラをコピーして貼り付けますか? あなたはOnCopyのカスタム実装を持っていて、カットをするときにも呼ばれ
e.Handled = true;
e.CancelCommand();
OnCopyでそれを処理するとき - 私は、メソッドがコピーを実行するために呼び出されるか、切断されたかどうかを確認する方法を見つけることができません。
何カットについてです:
DataObject.AddPastingHandler(myRichTextBox, MyPasteCommand);
DataObject.AddCopyingHandler(myRichTextBox, MyCopyCommand);
private void MyPasteCommand(object sender, DataObjectEventArgs e)
{
//do stuff
}
private void MyCopyCommand(object sender, DataObjectEventArgs e)
{
//do stuff
}
私もそれはコピーかカットかわかりません –
windowsフォームまたはWPF? –
for Windowsフォーム:http://stackoverflow.com/questions/5618162/detecting-if-paste-event-occurred-inside-a-rich-text-box for WPFここをクリックしてください:http:// stackoverflow .com/questions/3061475/paste-event-in-a-wpf-textbox –
@Davide、WPFリンクはハンドラを追加しますが、それをオーバーライドしません。 – raym0nd