10 / 12 / 2
Регистрация: 13.01.2010
Сообщений: 363
|
|
1 | |
Окно переписки с вкладками13.03.2011, 18:50. Показов 3759. Ответов 29
Метки нет Все метки)
(
Делаю мессенджер, а в данный момент - окно для самой переписки.
С переписками в отдельных окнах проблем нет, несложно. А вот с одним окном, в котором будут создаваться вкладки с парочкой текстбоксов, возник вопрос как. Понятно, что нужно использовать tabControl, но вот только как именно использовать в моей ситуации? ^^ буду рад любым подсказкам (можно даже с кодом))
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
|
|
13.03.2011, 18:50 | |
Ответы с готовыми решениями:
29
Создать окно произвольного размера, скрыть окно, показать окно, удалить окно. Алгоритм переписки |
86 / 85 / 13
Регистрация: 21.10.2010
Сообщений: 349
|
|
13.03.2011, 19:00 | 2 |
Создавай массив текстбоксов.
0
|
86 / 85 / 13
Регистрация: 21.10.2010
Сообщений: 349
|
|||||||||||||||||||||||||||||||
13.03.2011, 19:56 | 4 | ||||||||||||||||||||||||||||||
Добавление:
или
Добавление в TabPage
1
|
86 / 85 / 13
Регистрация: 21.10.2010
Сообщений: 349
|
|
13.03.2011, 20:04 | 6 |
0
|
3 / 3 / 0
Регистрация: 31.03.2011
Сообщений: 34
|
||||||
03.05.2011, 09:17 | 7 | |||||
Я тоже сейчас пишу мессенджер, и тоже мучаюсь с созданием вкладок.Выбираю адресата в первой форме, открывается вторая форма и на нее передается ид пользователя. Вот как мне организовать появление вкладок для каждого адресата, и чтобы ид к каждой вкладке передавался?
помогите пожалуйста, желательно с кодом, ато я пока тока учусь! Пока работает так, при клике на каждого адресанта:
А хочу так: 1. при клике, открывается форма, динамически добавляется вкладка с элементами, где ид юзер1 2. при повторном клике на другом адресанте, создается другая вкладка где ид юзер5 к примеру
0
|
10 / 12 / 2
Регистрация: 13.01.2010
Сообщений: 363
|
||||||||||||||||
03.05.2011, 18:29 [ТС] | 8 | |||||||||||||||
DjadjaSem, надо в форме создать паблик функцию, которая будет вкладку создавать, и вызывать её как-то так:
ADD: объяснил я, наверное, не очень, поэтому держи проект с примером
1
|
3 / 3 / 0
Регистрация: 31.03.2011
Сообщений: 34
|
|
04.05.2011, 09:04 | 9 |
Спасибо! Хотя я уже сам сделал это, но очень пригодилась обработка закрытия формы!
Теперь следующий вопрос: При повтором клике на адресанте, необходимо сделать не появление нового tabPage, а просто перевода фокуса на уже созданную tabPage этого юзера. Кстати если тебе интересна еще эта тема, могу показать как сделать вывод юзеров списком и с картинками по типу как в майл агенте
0
|
286 / 231 / 33
Регистрация: 09.02.2011
Сообщений: 435
|
||||||
04.05.2011, 10:01 | 10 | |||||
Запоминайте какой табпейдж относится к какому адресату и переходите на него
0
|
3 / 3 / 0
Регистрация: 31.03.2011
Сообщений: 34
|
|
04.05.2011, 10:21 | 11 |
А как сделать чтобы новые вкладки не открывались,если для этого пользователя уже открыта вкладка.
вот думаю может значения передаваемые при клике, записывать в массив и если в данном массиве нет такого значения - создавать вкладку, а если нет, то делать selectIndex?? как тогда массив заполнять?
0
|
286 / 231 / 33
Регистрация: 09.02.2011
Сообщений: 435
|
|
04.05.2011, 10:38 | 12 |
Есть такая интересная штука как словарь, где задается пара ключ-значение. Допустим ключ - это id адресата, а значение - это имя табпейджа. У тебя есть id и создавая табпейдж у тебя есть его имя, вот и добавляй в словарь. Потом будеш просто проверять табпейдж на существование. Может есть и проще способ. Я выразил свое мнение. http://msdn.microsoft.com/ru-r... ctb9c.aspx
1
|
3 / 3 / 0
Регистрация: 31.03.2011
Сообщений: 34
|
||||||
04.05.2011, 13:23 | 13 | |||||
Не ты правильно говоришь, я так и пытаюсь сделать: передаю id контакта, добавляю этот id к названию tabPage, написал
if (tabPage.Name!=tabPage) { добавить вкладку } иначе куй! ![]() ...но не выходит, делает тока 1 вкладку тогда, то бишь я наверное создаю не правильно tabPage посмотри плиз, может у тебя че получится:
столкнулся еще с проблемой: tabPage = new TabPage("tab" + userId); tabPage.Name = "tab" + userId; tabPage.Text = "tab" + userId; tabControl1.TabPages.Add(tabPage); tabControl1.SelectedTab = tabPage; при таком раскладе действия могу проводить только с tabPage, если пишу например tab1( tabPage.Name = "tab" + userId ![]()
0
|
286 / 231 / 33
Регистрация: 09.02.2011
Сообщений: 435
|
|
04.05.2011, 13:32 | 14 |
Это все на одной форме происходит?
0
|
3 / 3 / 0
Регистрация: 31.03.2011
Сообщений: 34
|
|
04.05.2011, 13:38 | 15 |
Id юзера беру с первой формы(список контактов) только, остальное происходит на второй(окно чата)
Добавлено через 2 минуты не дописал маленько, то есть компилятор ругается на tab1.Text="имя_юзера" например и правильно делает потому что его как бы еще нет, но он же будет!
0
|
286 / 231 / 33
Регистрация: 09.02.2011
Сообщений: 435
|
||||||
04.05.2011, 13:41 | 16 | |||||
А где находятся табконтрол? На какой форме? И вообще опиши подробно что и куда передается, и что где делается, а если продемонстрируешь код, то вообще супер. Ты думаешь по чему кроме меня все молчат? По тому, что не совсем ясна задача, тяжело все кусочки собрать в кучу и понять, что тебе нужно.
0
|
3 / 3 / 0
Регистрация: 31.03.2011
Сообщений: 34
|
|||||||||||
04.05.2011, 14:06 | 17 | ||||||||||
учту!
итак создается первая форма
Теперь код второй формы при клике контакта:
0
|
286 / 231 / 33
Регистрация: 09.02.2011
Сообщений: 435
|
||||||
04.05.2011, 14:26 | 18 | |||||
Вот исправленный метод TabPageNew()
И userId нужно преобразовывать в тип стринг
1
|
3 / 3 / 0
Регистрация: 31.03.2011
Сообщений: 34
|
|
04.05.2011, 14:32 | 19 |
а как теперь этому новому ("tab" + Convert.ToString(userId)) поменять свойство текст?
как то типа этого: ("tab" + Convert.ToString(userId)).Text = "2" надо как то в коде наверное изменять tabPage
0
|
286 / 231 / 33
Регистрация: 09.02.2011
Сообщений: 435
|
||||||
04.05.2011, 14:43 | 20 | |||||
Так ты сразу задавай свойство Text такое, какое тебе нужно.
Вот здесь ты как раз и задаешь это свойство
Ответы на 7 самых частых вопросов по WinForms
0
|
04.05.2011, 14:43 | |
Помогаю со студенческими работами здесь
20
Сохранение переписки вк
История переписки вконтакте Скайп, защита переписки Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |