Pergunta

como eu estou fazendo uma pequena aplicação de chat em vb.net (forma janelas), estou tendo problema para o design do meu chatbox. Gostaria mensagens de texto para ser selecionável assim que o usuário pode copiar (ctrl + v), mas não nomes de usuário, que exibe que enviou a mensagem. Quais controles forma eu deveria usar para fazer isso e quais propriedades à mudança a partir dele? Obrigado. Também tenha em mente nomes de usuário e suas mensagens devem ser corretamente alinhados.

Foi útil?

Solução

pegar o ctrl + c e analisar o texto selecionado para nome de usuário e excluí-los

(talvez você pode fazer as imagens usernames o que impedirá padrão copiar colar texto)

Outras dicas

Você já pensou em usar um DataGridView controle?

Você poderia ter colunas separadas para os nomes de usuários e as mensagens e só permitir a cópia da coluna de mensagem.

O controle DataGridView é extremamente poderoso nos dias de hoje e que lhe permitem personalizar a aparência que quiser (linhas de grade esconderijos para fazer com que pareça mais como uma caixa de texto, por exemplo).

Existem dicas e sugestões em todo o lugar, mas esta página mostra como alterar cores de grade.

Bem, aqui está uma ideia muito legal, mas eu não sei o suficiente sobre suas necessidades de saber se ele vai trabalhar para você ou não. Estou pensando em primeiro lugar que, se eu estivesse usando um aplicativo de bate-papo, gostaria simplesmente clicar em uma mensagem de e tê-lo ser copiados para o clipboard. Afinal, eu não consigo pensar em qualquer outra coisa que eu preciso clicar em uma mensagem. Então, seria ótimo se pairando sobre uma mensagem causou a ser destacado, e clicando causou a ser copiado.

Se isso funciona para a sua situação, então a questão é como conseguir isso. Estou a pensar que você poderia usar uma etiqueta para mostrar o nome do usuário que enviou a mensagem, e uma caixa de texto somente leitura para mostrar a própria mensagem. Cada vez que uma nova mensagem é adicionado ao bate-papo, você insere um novo rótulo e uma nova caixa de texto (adicionando esses controles à coleção de controles da página). Provavelmente deve envolver o rótulo e caixa de texto em uma div, para que possa destacar todo o div quando hover.

Agora, como você faz clicando causa o texto da mensagem a ser copiados para o clipboard? Vai levar algum JavaScript. Se você estiver usando uma biblioteca JavaScript, veja o que ele oferece. Se não, aqui estão alguns links. O código Javascript seria necessário para obter apenas o conteúdo da caixa de texto, o que ele pode fazer, olhando para a classe css direita ou à direita ID do. E, em seguida, copie o texto para a área de transferência como descrito nestes links:

Javascript para copiar a área de transferência

A 2ª link sobre Javascript para copiar a área de transferência

A 3ª link sobre Javascript para copiar a área de transferência

A 4ª link sobre Javascript para copiar a área de transferência

A propósito, talvez você tem a exigência de que os usuários devem ser capazes de selecionar o texto de muitas mensagens. Nesse caso, talvez clicar em uma mensagem de "selecionar"-lo, e você pode ter múltiplos selecionados. Então, há um botão para "copiar todas as mensagens selecionadas". A única coisa que este não manipula é selecionar parte do texto de uma mensagem. Então, ele pode ou não ser adequado para suas necessidades.

Ao selecionar as duas caixas de texto e validar o nome de usuário e senha para dois usuários diferentes e tomar as caixas de lista para ver as mensagens, em código aberto uma conexão de soquete para conversar entre os usuários.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top