Windows Form приложения вырезать копировать вставить функциональность - PullRequest
6 голосов
/ 09 июня 2010

У меня есть приложение Windows Form с несколькими формами и элементами управления в них.Я хочу, чтобы пользователь выделил какой-либо текст в любом элементе управления любой формы моего приложения и щелкнул по кнопке вырезать / скопировать / вставить на панели инструментов, чтобы выполнить операцию соответствующим образом.

im с использованием sendkeys.send в C # .net ("^c ") по нажатию кнопки копирования, но она не работает ...

ИЛИ любой 1 может сказать, есть ли способ получить выделенный текст (несмотря на знание, какая форма / контроль моего приложения).

Заранее спасибо ...

Ответы [ 3 ]

5 голосов
/ 09 июня 2010

использовали ли вы буфер обмена для копирования и вставки ваших данных, если нет, то используйте для этого буфер обмена

проверьте эту статью для получения дополнительной информации о буфере обмена: http://www.geekpedia.com/tutorial188_Clipboard-Copy-and-Paste-with-Csharp.html

2 голосов
/ 09 июня 2010

Я использую это в методе обработки события копирования:

if (this.ActiveControl is TextBox)
{
      Clipboard.SetDataObject(((TextBox)this.ActiveControl).SelectedText, true);
}
if (this.ActiveControl is RichTextBox)
{
      Clipboard.SetDataObject(((RichTextBox)this.ActiveControl).SelectedText, true);
}
if (this.ActiveControl is ComboBox)
{
       Clipboard.SetDataObject(((ComboBox)this.ActiveControl).SelectedText, true);
}

Для вставки что-то вроде этого:

nCursorPosition = ((RichTextBox)this.ActiveControl).SelectionStart;
this.ActiveControl.Text = this.ActiveControl.Text.Insert(nCursorPosition, Clipboard.GetText());
1 голос
/ 09 июня 2010

На ваш второй вопрос:

Вы можете использовать это решение Какой предпочтительный способ найти фокусированный элемент управления в приложении WinForms? , чтобы найти текущий фокусированный элемент управления.

Затем проверьте, к какому типу относится чтение (например, если оно TextBox, используйте SelectedText -Propery http://msdn.microsoft.com/en-us/library/system.windows.controls.textbox.selectedtext.aspx)

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