私はIsReadonly = True
を設定したWPFテキストボックスを持っています。 Ctrl + C、Ctrl + Vを有効にしたい&このテキストボックスのコピー&ペースト機能を右クリックします。 WPFのテキストボックス内にinbuiltの機能はありますか?WPFの読み取り専用のテキストボックスにコピー貼り付け機能を有効にする
答えて
私があなたの質問を正しく理解している場合は、コピー/ペーストのみ許可したいが他のテキスト入力は許可しない。ユーザーが移動してテキストを選択できるように、キーボードナビゲーション/選択を有効にしたい場合もあります。あなたがIsReadOnly = True
を削除し、次のEventHandlerを設定する必要があること達成するために
:右クリックでカットエントリを無効にするには
private void TextBox_PreviewKeyDown(object sender, KeyEventArgs e)
{
switch (e.Key)
{
// Enable copy/paste and selection of all text.
case Key.C:
case Key.V:
case Key.A:
if ((Keyboard.Modifiers & ModifierKeys.Control) == ModifierKeys.Control)
return;
break;
// Enable keyboard navigation/selection.
case Key.Left:
case Key.Up:
case Key.Right:
case Key.Down:
case Key.PageUp:
case Key.PageDown:
case Key.Home:
case Key.End:
return;
}
e.Handled = true;
}
:背後にあるコードを
<TextBox PreviewKeyDown="TextBox_PreviewKeyDown">
は、このようになります。カスタムコンテキストメニューを設定する必要があります。
<TextBox PreviewKeyDown="TextBox_PreviewKeyDown">
<TextBox.ContextMenu>
<ContextMenu>
<MenuItem Command="ApplicationCommands.Copy" />
<MenuItem Command="ApplicationCommands.Paste" />
</ContextMenu>
</TextBox.ContextMenu>
これははCtrl +C、はCtrl +V、右クリックコピー/ペースト機能を有効にしても、ほかのすべての入力を無効にする必要があります。
これはそれです!ケースストラクチャにKey.BackとKey.Deleteを追加しました。 – Sandeep
私は、カスタムContextMenu
を使用して、Copy, Paste
のコマンドを示しました。
私はContextMenuOpening/Closing events
を表示してContextMenu
と表示しました。これらのイベントを処理しないと、ContextMenu
が表示されますが、コマンドは無効になります。
Ctrl+V
ペーストのPreviewKeyDown
とKeyDown
イベントを処理しました。
私はCaretBrush
をTransparent
に設定しました。それ以外の場合は、IsReadOnly = true
を設定すると表示されます。
<TextBox PreviewKeyDown="TextBox_PreviewKeyDown_1" KeyDown="TextBox_KeyDown_1" ContextMenuOpening="TextBox_ContextMenuOpening_1" ContextMenuClosing="TextBox_ContextMenuClosing_1" IsReadOnly="True" Text="a" CaretBrush="Transparent" Background="Bisque" Width="277">
<TextBox.ContextMenu>
<ContextMenu>
<MenuItem Command="ApplicationCommands.Copy" />
<MenuItem Command="ApplicationCommands.Paste" />
</ContextMenu>
</TextBox.ContextMenu>
</TextBox>
ハンドラ:
private void TextBox_ContextMenuOpening_1(object sender, ContextMenuEventArgs e)
{
(sender as TextBox).IsReadOnly = false;
}
private void TextBox_ContextMenuClosing_1(object sender, ContextMenuEventArgs e)
{
(sender as TextBox).IsReadOnly = true;
}
private void TextBox_PreviewKeyDown_1(object sender, KeyEventArgs e)
{
if (e.Key == System.Windows.Input.Key.V && Keyboard.IsKeyDown(Key.LeftCtrl) || Keyboard.IsKeyDown(Key.RightCtrl))
{
(sender as TextBox).IsReadOnly = false;
}
}
private void TextBox_KeyDown_1(object sender, KeyEventArgs e)
{
(sender as TextBox).IsReadOnly = true;
}
これは手であなたの問題を解決するかどうか教えてください。
- 1. WPF VB.NETで無効にコピー/貼り付け/切り取り
- 2. 読み取り専用テキストボックス
- 3. WPF:読み取り専用のテキストボックスでSpellCheckを使用
- 4. AngularJsを使用してテキストボックスの切り取り、コピー、貼り付けを無効にする
- 5. UITextFieldに読み取り専用のタイトルを付ける
- 6. UITextviewで切り取り、コピー、貼り付けは無効にするが、リンクとスクロールを有効にする
- 7. C#WPFの読み取り専用チェックボックス
- 8. コアデータは読み取り専用データにも有効ですか?
- 9. 他のテキストに依存するC#テキストボックス読み取り専用
- 10. WPF:読み取り専用TextBoxとバインディング
- 11. JSコピーの貼り付け後に入力を有効にする方法
- 12. フォント、フォントファミリ、リンク、切り取り/コピー/貼り付け(マウスで)をtinymceエディタで有効にするには?
- 13. 可視カーソル(.NET 3.5)を使用したWPFの読み取り専用テキストボックス
- 14. InfoPath 2010の読み取り専用ビューでコントロールを有効にする
- 15. linuxのコードブロックのコピー/貼り付けの機能
- 16. Visual Studioコードの貼り付けと貼り付けのコピー
- 17. 読み取り専用自動対(読み取り専用)プロパティ
- 18. テキストのコピー/貼り付け
- 19. 読み取り専用ext4 fsのジャーナリングを無効にする
- 20. 春MVC:読み取り専用&無効
- 21. html単一行のテキストボックス(読み取り専用、入力あり)
- 22. HTML:IOS-デバイスにコピー可能読み取り専用テキストエリアにする方法
- 23. SVNに関する質問 - "読み取り専用作業コピー"
- 24. 読み取り専用テーブルのすべての列にインデックスを付ける
- 25. アンドロイドでコピー貼り付けを無効にする
- 26. のコピー/貼り付けデータに
- 27. HTML5の貼り付けイベントでファイルを読み取る方法
- 28. コピー貼り付けマクロ
- 29. (例:コピー、貼り付け...)
- 30. VBAコピー貼り付け
Ctrl + Cを右クリックし、[コピー]をクリックします。ペースト - テキストボックスは読み込み専用なので、どのようにペーストすると思いますか? – Evk