Usuário com melhor resposta
DataGridView: Como pegar um texto selecionado dentro de uma célula editável

Pergunta
-
Tenho um DataGridView que mostra valores de um tabela
Este grid permite edição direta pelo usuário, ou seja, o usuário pode clicar sobre as células e editá-las em tempo real.
Porém eu preciso identificar se o usuário selecionou parte do texto dentro da célula e utilizar este texto para outra operações. (como fazer um filtro por exemplo)
Alguém sabe como posso identificar esse texto selecionado?
Lembre-se que o texto é conteúdo de uma célula do DataGridView.
Obrigado!
Respostas
-
Olá Fabio!
Veja se a solução apresentada neste link resolve o seu problema:
Abraço!
André Alves de Lima
Microsoft MVP - Client App Dev
Visite o meu site: http://www.andrealveslima.com.br
Me siga no Twitter: @andrealveslima- Marcado como Resposta Robson William SilvaModerator sexta-feira, 25 de novembro de 2016 12:08
Todas as Respostas
-
Bom dia Fabiorsc,
Obrigado pela participação no Fórum MSDN.
Por gentileza, verifique se essa propriedade o ajuda.
Atenciosamente,
Robson William Silva
Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita
MSDN Community Support
Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.
-
Olá Robson, Obrigado pela resposta.
Aparentemente a solução que propôs resolveria sim mas não funcionou.
quando executo a linha
Clipboard.SetDataObject(Me.DataGridView1.GetClipboardContent())
do exemplo no link, é me gerado um erro ArgumentNullException.
"Valor não pode ser nulo.
Nome do parâmetro: data"
alterei a propriedade ClipboardMode do grid para "EnableWithoutHeaderText" achando que poderia ser isso mas não funcionou.
-
Identifiquei que este método copia o valor inteiro da célula, e não o valor seleciona dentro da célula.
O erro se deve pois estou com o contúdo selecionado e não a célula, neste caso
Me.DataGridView1.GetClipboardContent
me retorna nulo.
O valor inteiro da célula eu já consigo através do .grid.rows.cell(ridx,cidx).value o que eu preciso é capturar a parte da célula que estiver selecionada.
Ex: se minha Célula possui o texto "conteúdo selecionado" e eu seleciona "údo sele", eu quero pegar apenas esta parte "údo sele".
Quero isso pq quero filtrar todos os registros que possuem o que o usuário selecionou, ou seja, todos registros que contenham "údo sele".
-
Bom dia Fabiorsc,
Procurei bastante mas não encontrei algo muito específico, mas talvez você consiga o que precisa estudando e adaptando o UI Automation.
Segue alguns links:
https://msdn.microsoft.com/en-us/library/ms745158.aspx
http://stackoverflow.com/questions/517694/ui-automation-selected-text
Robson William Silva
Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita
MSDN Community Support
Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.
-
Olá Fabio!
Veja se a solução apresentada neste link resolve o seu problema:
Abraço!
André Alves de Lima
Microsoft MVP - Client App Dev
Visite o meu site: http://www.andrealveslima.com.br
Me siga no Twitter: @andrealveslima- Marcado como Resposta Robson William SilvaModerator sexta-feira, 25 de novembro de 2016 12:08
-
Bom dia,
Devido a falta de interação do autor dessa pergunta,
essa thread está sendo fechada. Caso o problema ainda
esteja ocorrendo, favor abrir uma nova thread.
Atenciosamente,
Robson William Silva
Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita
MSDN Community Support
Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.
-
-
Maravilha Fabio! Qualquer coisa estamos aí..
Abraço!
André Alves de Lima
Microsoft MVP - Client App Dev
Visite o meu site: http://www.andrealveslima.com.br
Me siga no Twitter: @andrealveslima