Какие элементы управления формы использовать для чата (.net) - PullRequest
1 голос
/ 13 марта 2009

Поскольку я делаю небольшое приложение чата в vb.net (форма Windows), у меня возникла проблема с дизайном моего чата. Я хотел бы, чтобы текстовые сообщения можно было выбирать, чтобы пользователь мог копировать (Ctrl + V), но не имена пользователей, которые отображают, кто отправил сообщение. Какие элементы управления формой я должен использовать для достижения этой цели и какие свойства нужно изменить? Спасибо. Также имейте в виду, что имена пользователей и их сообщения должны быть правильно выровнены.

Ответы [ 4 ]

5 голосов
/ 13 марта 2009

поймать Ctrl + C и проанализировать выделенный текст для имени пользователя и удалить их

(может быть, вы можете сделать изображения пользователей, что помешает стандартной вставке текста)

3 голосов
/ 23 марта 2009

Задумывались ли вы об использовании DataGridView элемента управления?

Вы можете иметь отдельные столбцы для имен пользователей и сообщений и разрешить копирование только из столбца сообщений.

Элемент управления DataGridView очень мощен в наши дни и позволит вам настроить внешний вид так, как вы хотите (например, скрыть линии сетки, чтобы он выглядел как текстовое поле).

Везде есть советы и подсказки, но на этой странице показано, как изменить цвета линии сетки.

1 голос
/ 21 марта 2009

Хорошо, вот довольно крутая идея, но я недостаточно знаю о ваших требованиях, чтобы знать, сработает ли это для вас или нет. Прежде всего, я думаю, что если бы я использовал приложение чата, я бы просто хотел щелкнуть сообщение и скопировать его в буфер обмена. В конце концов, я не могу думать ни о чем другом, для чего мне нужно нажать на сообщение. Так что было бы замечательно, если бы при наведении курсора на сообщение оно было выделено, а при щелчке оно было скопировано.

Если это работает для вашей ситуации, тогда вопрос в том, как этого добиться. Я думаю, что вы можете использовать метку, чтобы показать имя пользователя, который отправил сообщение, и текстовое поле только для чтения, чтобы показать само сообщение. Каждый раз, когда новое сообщение добавляется в чат, вы вставляете новую метку и новое текстовое поле (добавляя эти элементы управления в коллекцию элементов управления на странице). Вероятно, следует обернуть метку и текстовое поле в элемент div, чтобы вы могли выделить весь элемент div при наведении курсора.

Теперь, как вы делаете щелчок, чтобы текст сообщения копировался в буфер обмена? Это займет немного JavaScript. Если вы используете библиотеку JavaScript, посмотрите, что она предлагает. Если нет, вот несколько ссылок. Код Javascript должен был бы получить только содержимое текстового поля, что он может сделать, ища правильный класс CSS или правильные идентификаторы. Затем скопируйте этот текст в буфер обмена, как описано в следующих ссылках:

Javascript для копирования в буфер обмена

2-я ссылка о Javascript для копирования в буфер обмена

3-я ссылка о Javascript для копирования в буфер обмена

4-я ссылка о Javascript для копирования в буфер обмена

Кстати, может быть, у вас есть требование, чтобы пользователи могли выбирать текст из многих сообщений. В этом случае, возможно, нажав на сообщение «выберет» его, и вы можете выбрать несколько магазинов. Затем есть кнопка «Копировать все выбранные сообщения». Единственное, что не обрабатывается, - это выделение части текста сообщения. Так что это может или не может быть правильным для ваших нужд.

0 голосов
/ 23 марта 2009

Выбрав два текстовых поля и проверив имя пользователя и пароль для двух разных пользователей и возьмите списки для просмотра сообщений, в коде откройте сокетное соединение для чата между пользователями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...