Domanda

mentre sto facendo una piccola applicazione di chat in vb.net (Windows Form), ho problemi con il design della mia chat. Vorrei che i messaggi di testo fossero selezionabili in modo che l'utente possa copiarlo (ctrl + v) ma non i nomi utente che visualizzano chi ha inviato il messaggio. Quali controlli del modulo dovrei usare per ottenere questo risultato e quali proprietà cambiarne? Grazie. Ricorda inoltre che i nomi utente e i loro messaggi devono essere correttamente allineati.

È stato utile?

Soluzione

cattura ctrl + c e analizza il testo selezionato come nome utente ed eliminali

(forse puoi creare le immagini dei nomi utente che impediranno l'incollaggio standard della copia del testo)

Altri suggerimenti

Hai mai pensato di utilizzare un DataGridView ?

Potresti avere colonne separate per i nomi utente e i messaggi e consentire solo la copia dalla colonna dei messaggi.

Il controllo DataGridView è estremamente potente in questi giorni e ti consentirebbe di personalizzare l'aspetto come desideri (nascondere le linee della griglia per renderlo più simile a una casella di testo, ad esempio).

Ci sono consigli e suggerimenti ovunque, ma questa pagina mostra come cambiare i colori della griglia.

Bene, ecco un'idea piuttosto interessante, ma non so abbastanza delle tue esigenze per sapere se funzionerà per te o no. Prima di tutto sto pensando che, se stavo usando un'applicazione di chat, vorrei semplicemente fare clic su un messaggio e copiarlo negli Appunti. Dopo tutto, non riesco a pensare a nient'altro per cui fare clic su un messaggio. Pertanto, sarebbe bello se il passaggio del mouse su un messaggio lo facesse evidenziare e facendo clic su facesse sì che venisse copiato.

Se funziona per la tua situazione, allora la domanda è come raggiungerlo. Sto pensando che potresti usare un'etichetta per mostrare il nome utente che ha inviato il messaggio e una casella di testo di sola lettura per mostrare il messaggio stesso. Ogni volta che un nuovo messaggio viene aggiunto alla chat, si inserisce una nuova etichetta e una nuova casella di testo (aggiungendo questi controlli alla raccolta di controlli della pagina). Probabilmente dovresti avvolgere l'etichetta e la casella di testo in un div, in modo da poter evidenziare l'intero div quando passa con il mouse.

Ora, come si fa a fare clic facendo sì che il testo del messaggio venga copiato negli appunti? Ci vorrà un po 'di JavaScript. Se stai usando una libreria JavaScript, vedi cosa offre. Altrimenti, ecco alcuni link. Il codice Javascript dovrebbe avere solo il contenuto della casella di testo, cosa che può fare cercando la giusta classe css o l'id giusto. E poi, copia quel testo negli appunti come descritto in questi link:

Javascript per la copia negli appunti

Un secondo link su Javascript per la copia negli appunti

Un terzo link su Javascript per la copia negli appunti

Un quarto link su Javascript per la copia negli appunti

A proposito, forse hai il requisito che gli utenti dovrebbero essere in grado di selezionare il testo di molti messaggi. In tal caso, forse facendo clic su un messaggio " seleziona " e puoi avere multipli selezionati. Quindi, c'è un pulsante per " Copia tutti i messaggi selezionati " ;. L'unica cosa che non gestisce è la selezione di parte del testo di un messaggio. Quindi potrebbe essere o non essere giusto per le tue esigenze.

Selezionando le due caselle di testo e convalidando il nome utente e la password per due diversi utenti e prendendo le caselle di riepilogo per visualizzare i messaggi, nel codice aprire una connessione socket per chattare tra gli utenti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top