Markus Rechberger Ответов: 1

Приложения WinForms TreeView элемент - как я могу использовать CTRL+C для копирования текста узла?


В настоящее время я сталкиваюсь с проблемой: у меня есть MultiSelectTreeView, и я могу изменить текст на узле, дважды щелкнув его (но оставив некоторое время между ними), как в обычных окнах, когда вы хотите переименовать файл.

А теперь когда я нахожусь в этом разделе модификации имени где текст выделен и все такое (подобный этому) Я не могу использовать Ctrl+C для копирования текста. Я могу использовать функцию копирования контекстного меню только при нажатии правой кнопки мыши на нем, что занимает значительно больше времени, чем Ctrl+C.

Отключены ли ярлыки в этом сценарии, и если да, то могу ли я их включить?

Кроме того, я уже реализовал функциональность для Ctrl+C/Ctrl+V при копировании/вставке всего узла, так что это не мой вопрос. Эта проблема просто связана с копированием текста.

Я хочу сделать показанное решение здесь но я не совсем понимаю это, так как не знаю, например, что означает "поместите новый элемент управления из верхней части панели инструментов в вашу форму" (я также не могу открыть конструктор)

Что я уже пробовал:

Я задал тот же вопрос о переполнении стека, но пока не получил ответа:
Ссылка на вопрос

Jochen Arndt

В режиме редактирования Ctrl-C должен работать так же, как и в любом элементе управления редактированием.

Возможно, ваш обработчик Ctrl+C/Ctrl+V для целых узлов подавляет пересылку активации ускорителя в элемент управления редактированием.

[no name]

Это может быть! Есть ли возможность, что я могу отправить вам код для этого обработчика структурированным способом, чтобы вы могли взглянуть на него?

Jochen Arndt

Чтобы убедиться в этом, сначала просто отключите / удалите свой обработчик. Или проверьте, работают ли другие стандартные ускорители, такие как Ctrl-A (select all) (если они также не пойманы обработчиком).

Также не обязательно знать, что делает обработчик, но как он вызывается / добавляется к обработке сообщений, если он является виновником.

Если это так, отредактируйте свой вопрос, используя зеленую ссылку "улучшить вопрос". Тогда и другие могли бы помочь.

[no name]

Большое вам спасибо, я смог решить эту проблему с вашей помощью! Вы можете прочитать, что я сделал в ответе, который я написал. Хорошего дня!

Jochen Arndt

Приятно слышать, что вы решили эту проблему, и спасибо вам за обратную связь.

1 Ответов

Рейтинг:
11

Markus Rechberger

Я заметил, что при нажатии Ctrl+C в режиме редактирования он использует обычный обработчик Ctrl+C для целых узлов, но "терпит неудачу" там при условии if, которое проверяет, была ли выбрана правильная вещь (=узел).


Я просто добавил к этому еще одно значение, которое затем копирует выбранное значение в буфер обмена, и оно отлично работает!
Вероятно, мне просто придется сделать то же самое с Ctrl+V в режиме редактирования.

Боже, я так долго искал это решение, благодаря Йохену Арндту, который оказал мне помощь в разделе комментариев!