Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Copiar/Recortar/Colar

Fiz um formulário com vários campos contendo nome, título, edição, etc... E coloquei os botões de Copiar(Copy), Recortar (Cut) e Colar(Paste).

Minha dúvida é: como faço para o programa Copiar/Recortar o texto que eu selecionei e Colar no Campo que está meu prompt?

Grato pela ajuda. =D

4 respostas

Olá, Diego. Você deve chamar via C# a funcionalidade de copiar/recortar e colar da "área de transferência do Windows (Clipboard)".

Resumidamente:

  • Para copiar um texto que está na caixa de texto text1 para área de transferência use: Clipboard.SetText(text1.Text);

-Para colar um texto que já está na área de transferência para a caixa de texto text1: Clipboard.GetText(text1.Text);

-Para recortar um texto que já está na caixa de texto text1 pra área de transferência, use o copiar, apague o conteúdo e depois cole.

Para maiores detalhes tem um link completo em : https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.clipboard?f1url=%3FappId%3DDev16IDEF1%26l%3DEN-US%26k%3Dk(System.Windows.Forms.Clipboard);k(SolutionItemsProject);k(DevLang-csharp)%26rd%3Dtrue&view=netcore-3.1

E também em: https://stackoverflow.com/questions/3546016/how-to-copy-data-to-clipboard-in-c-sharp

Então, a questão é que não quero copiar tudo que está no text1.Text, quero usar essa função apenas no texto selecionado, independente de qual text.Text esse texto esteja. E quando colar também seja onde o prompt estiver. Essa documentação da Microsoft eu já tinha lido, mas não consegui encontrar a resposta para minha dúvida.

solução!

Ok, então você deve separar as coisas. Primeiro obtêm-se o texto que está selecionado, basta apenas obtê-lo usando a propriedade SelectedText do campo, no nosso exemplo seria text1.SelectedText e depois envia o texto para o Clipboard com Clipboard.SetText(text1.SelectedText)

https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.textboxbase.selectedtext?view=netcore-3.1

Acabei usando as funções oferecidas pelo TextBox junto com o Clipboard para resolver o assunto. Não sei se foi o melhor jeito, mas funcionou =D

Obrigado pela ajuda!!!