Que formam controles para uso por um chatbox (.net)
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.
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.