私は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. 読み取り専用テキストボックス
- 2. WPF:読み取り専用のテキストボックスでSpellCheckを使用
- 3. AngularJsを使用してテキストボックスの切り取り、コピー、貼り付けを無効にする
- 4. UITextviewで切り取り、コピー、貼り付けは無効にするが、リンクとスクロールを有効にする
- 5. UITextFieldに読み取り専用のタイトルを付ける
- 6. C#WPFの読み取り専用チェックボックス
- 7. コアデータは読み取り専用データにも有効ですか?
- 8. WPF:読み取り専用TextBoxとバインディング
- 9. フォント、フォントファミリ、リンク、切り取り/コピー/貼り付け(マウスで)をtinymceエディタで有効にするには?
- 10. linuxのコードブロックのコピー/貼り付けの機能
- 11. 可視カーソル(.NET 3.5)を使用したWPFの読み取り専用テキストボックス
- 12. テキストのコピー/貼り付け
- 13. InfoPath 2010の読み取り専用ビューでコントロールを有効にする
- 14. 読み取り専用自動対(読み取り専用)プロパティ
- 15. 春MVC:読み取り専用&無効
- 16. html単一行のテキストボックス(読み取り専用、入力あり)
- 17. HTML:IOS-デバイスにコピー可能読み取り専用テキストエリアにする方法
- 18. SVNに関する質問 - "読み取り専用作業コピー"
- 19. 読み取り専用テーブルのすべての列にインデックスを付ける
- 20. アンドロイドでコピー貼り付けを無効にする
- 21. のコピー/貼り付けデータに
- 22. HTML5の貼り付けイベントでファイルを読み取る方法
- 23. VBAコピー貼り付け
- 24. コピー貼り付けfrom userform
- 25. (例:コピー、貼り付け...)
- 26. コレクションの読み取り専用コピーを返す方法
- 27. GWT CellTableセル読み取り専用/無効/編集不可能
- 28. Javascript - 貼り付けイベントの前に貼り付けデータを取得する
- 29. クリップボードイベントの検出と区別(切り取り、コピー、貼り付け)
- 30. cssの読み取り専用テキストボックスの動的幅
Ctrl + Cを右クリックし、[コピー]をクリックします。ペースト - テキストボックスは読み込み専用なので、どのようにペーストすると思いますか? – Evk