Пользовательский пользовательский элемент управления в C # ... Меню правой кнопки мыши для копирования текста (обучение Java-разработчиков на C #) - PullRequest
2 голосов
/ 25 июня 2009

Я работаю над пользовательским элементом управления, который по существу отображает пару имя-значение (имя на черном фоне, значение на белом). Мой элемент управления отображается правильно, даже отображается в Designer и на странице сборки.

То, что я хотел бы сделать здесь, это иметь возможность щелкнуть правой кнопкой мыши на пользовательском элементе управления и открыть меню с опцией «Копировать значение», которое при выборе копирует значение в «значение» часть пользовательского элемента управления в буфер обмена. Каков наилучший метод подхода?

Я не уверен, с чего начать, так как большая часть документации по пользовательским элементам управления, которую я нашел, касается отображения элемента управления, а не обязательно взаимодействия с ним. Кроме того, поскольку я все еще изучаю C #, возможно, я упустил важную часть своей проблемы в этом вопросе, поэтому, пожалуйста, укажите, если это так.

Я использую Visual Studio 2008 (если это имеет значение).

Ответы [ 2 ]

3 голосов
/ 25 июня 2009

Проверьте ContextMenu элемент управления и свойство ContextMenu других элементов управления. Присвоив элемент управления ContextMenu свойству ContextMeny другого элемента управления, вы получите проводку всплывающего меню, щелкнув правой кнопкой мыши ->. Тогда вам нужно только реализовать событие click для различных пунктов меню в контекстном меню.

Затем вы можете использовать Clipboard.SetText (как предложено BFree), чтобы установить желаемое значение в буфер обмена.

1 голос
/ 25 июня 2009

Добавить ContextMenu в элемент управления. Подсоедините событие MouseClick (или MouseDown, в зависимости от того, что лучше), и, если это щелчок правой кнопкой мыши, вызовите show для ContextMenu (есть несколько перегрузок, попробуйте поработать с ними, посмотрите, что работает лучше для вас). Затем в событии click вашего контекстного меню просто вызовите Clipboard.SetText (...), чтобы установить значение в буфер обмена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...