小さなテキストエディタを作成しています(メモ帳のように)。私のフォームにはいくつかのボタンがあります(切り取り、削除、コピー)。私は、テキストが選択されていないときにはそれらを不可能にしたい、そしてその逆...テキストが選択されているときに起こるイベントはありますか?私はテキストボックスコントロールを使用します。テキストボックスに選択テキストイベントがあります
答えて
、このようなイベントはありませんが、幸いな回避策があります。
1)は、(私はこれが最善の解決策ではありません認めるが、それはだから、それはより頻繁に私の好みではない以上だApplication.Idle
イベントで独自の更新UIによってそれをしなさい)実装が簡単:
Application.Idle += OnIdle;
そして:
private void OnIdle(object sender, EventArgs e) {
btnCopy.Enabled = txtEditor.SelectionLength > 0;
}
2)RichTextControl
(ない最高のsから独自のクラスを派生あなたが巨大なファイルだけでなく巨大なファイルを処理しなければならない場合はolution)、そしてEN_SELCHANGE
通知(私が見ているすべてのIMEと互換性がある最も堅牢なもの)を処理します。概念実証(MSDNから適切な値を選択し、EM_SETEVENTMASK
でENM_SELCHANGE
を設定することを忘れないでください):
public class TextBoxEx : TextBox {
public event EventHandler SelectionChanged;
protected override void WndProc(ref Message m) {
base.WndProc(ref m);
if (m.Msg == WM_NOTIFY && m.lParam == EN_SELCHANGE) {
OnSelectionChanged(EventArgs.Empty);
}
}
// ...
}
あなたはそれを行うかもしれないが...デフォルトのコントロールが既にあなたのためにこの機能を持っている:それはSelectionChanged
イベントがあります。
クリップボードの内容に応じて貼り付けボタンを更新する必要があるため、クリップボードの貼り付けもサポートしている場合は注意してください(次に簡単な場所はApplication.Idle
になります)。 CanPaste()
とRichTextControl
で同様のメソッドを呼び出すと、一部のIME(see also In Idle cannot access RichTextControl or IME will not work)が壊れる可能性があります。
ありがとう。それは機能します。 –
RichTextBox
を使用する場合は、SelectedText
というプロパティがあります。あなたはSelectedText
が空でないかどうかを確認することができます
if (richTextBox1.SelectedText.Length > 0){ //means there is a selection
}
がSelectionChanged
イベントとそれを組み合わせる:
private void richTextBox1_SelectionChanged(object sender, EventArgs e) {
bool enabled = richTextBox1.SelectedText.Length > 0;
//do something
}
あなたがあった場合にControl
/選択されていないテキストを有効/無効にするように制御することができます。
- 1. Firefoxでユーザー選択のテキストイベントを取得する方法
- 2. HTML:テキストボックスと選択ドロップダウンはレベルではありません
- 3. 選択リスト選択値の変更に問題があります
- 4. XCode4バージョンエディタに「右選択」と「左選択」コントロールがありますか?
- 5. テキストボックスにテキストが選択されています
- 6. JavaScriptを選択に基づいて選択する必要があります。選択リスト
- 7. ReadOnlyテキストボックスを選択不可にする
- 8. jquery mobile:選択メニューは2回選択する必要があります
- 9. ComboBoxのテキストボックスへの選択
- 10. 選択可能なテキストボックス
- 11. Javascriptドロップダウンボタンが選択されている場合、テキストボックスは色を変更する必要があります
- 12. ユーザーが選択したDIV(またはテキストボックス)コンテンツの選択解除
- 13. セレンのテキストボックスに入力できないのは、選択のみです。テキストエリアの要素がありません
- 14. Swing:JComboBoxの選択項目の隣にフローティングパネルがあります
- 15. MPIとOpenMP。私には選択肢がありますか?
- 16. 選択フィールドに空白のオプションがあります
- 17. クリックしたhrefの選択に問題があります
- 18. 角2の選択ボックスにデフォルト値があります
- 19. 選択したイメージがすべて$ _FILESにありません
- 20. ListBoxに選択項目のASP.NETコレクションがありますか?
- 21. UILabelには選択可能な値がありますか?
- 22. サブメニューの選択に問題があります
- 23. Rails:テキストボックスを選択ボックスに変更
- 24. Datagridviewの行をテキストボックスに選択
- 25. Django - 選択肢はありますが、ドロップダウンはありません
- 26. データボックスを選択すると、テキストボックスに選択されたアイテムが表示されます
- 27. ウェブページでテキストボックスを選択する方法
- 28. schema_versionに選択権限がありませんか?
- 29. フォーム選択ドロップダウンオプションが適切な場所にありません
- 30. JqGrid、DatePicker選択時にツールバーの値がありません
作業領域にはどのようなコントロールを使用しますか? – BWA
[リッチテキストボックス](http://stackoverflow.com/questions/647963/windows-forms-selectionchanged-event-for-textbox-class)を使用すると、そのようなイベントが発生します。 – Veverke