Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Получить ссылку, на содержимое TabPages 
V
    Опции темы
ДобренькийПапаша
Дата 13.4.2010, 16:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 14.1.2006
Где: г.Москва

Репутация: 3
Всего: 7



Есть TabControl с N-м количеством вкладок, на каждом tabpage есть MsChart. Как получить ссылку на текущий MsChart?


--------------------
Меня зовут Себастьян Парейра, торговец чёрным деревом.
PM MAIL   Вверх
ДобренькийПапаша
Дата 13.4.2010, 16:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 14.1.2006
Где: г.Москва

Репутация: 3
Всего: 7



Можно пройтись по элементам контейнера, и если он приводится к типу chart, то запомнить на него ссылку...

Это правильное решение будет?


--------------------
Меня зовут Себастьян Парейра, торговец чёрным деревом.
PM MAIL   Вверх
A5uKa
Дата 13.4.2010, 18:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


TЋ♥s F1rȜ iƧ BurȠiƞg
***


Профиль
Группа: Awaiting Authorisation
Сообщений: 1928
Регистрация: 30.8.2008

Репутация: 3
Всего: 16



Я думаю тут можно программно switch программно или как там..,

В Немерле это как-то так
Код

def MyChart = match(tabindex)
{
| 0 => MyChart1
| 1 => MyChart2
| 2 => MyChart3
...


Можно держать массив или структуру где-нибудь  smile 

Но блин... Надо указывать что куда делаешь наверное чуть подробнее. Насколько их много и Если оно всё динамическое, то мне бы всё равно хотелось формировать наподобие такой структуры для всего пейджа. Или брать в том порядке в котором ложили их туда... 
PM   Вверх
ДобренькийПапаша
Дата 13.4.2010, 20:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 14.1.2006
Где: г.Москва

Репутация: 3
Всего: 7



Создал объект в классе и при переключении табы вызываю функцию и присваиваю результат объекту в классе.
Код

private Chart GetChart(int index)
        {
            foreach (Control ctrl in tabChart.TabPages[index].Controls)
            {
                if(ctrl.GetType()==typeof(Chart))
                    return (Chart)ctrl;
            }
            return null;
        }



--------------------
Меня зовут Себастьян Парейра, торговец чёрным деревом.
PM MAIL   Вверх
Smoke89
Дата 14.4.2010, 10:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 7.2.2009

Репутация: нет
Всего: нет



Добрый день. 
Если я вас правильно понял , то вы хотите это наверное..
TabControl.SelectedPage.Controls[index] , где index посмотришь в десигнере.
И будет ссылка на текущий MsChart.

Это сообщение отредактировал(а) Smoke89 - 14.4.2010, 10:31
PM MAIL   Вверх
ДобренькийПапаша
Дата 14.4.2010, 10:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 14.1.2006
Где: г.Москва

Репутация: 3
Всего: 7



Цитата(Smoke89 @ 14.4.2010,  10:30)
Добрый день. 
Если я вас правильно понял , то вы хотите это наверное..
TabControl.SelectedPage.Controls[index] , где index посмотришь в десигнере.
И будет ссылка на текущий MsChart.

Да, вы правильно поняли, только про дезигнер я не совсем понял)))
Я программно вызываю выше приведённую функцию вот так:
Код

Chart currentChart = GetChart(tabChart.SelectedTab.TabIndex);



--------------------
Меня зовут Себастьян Парейра, торговец чёрным деревом.
PM MAIL   Вверх
Smoke89
Дата 14.4.2010, 13:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 7.2.2009

Репутация: нет
Всего: нет



Вообще заходишь Form1.Designer.cs или как там у тебя форма называется. В нем находишь, что то типа...

Код

TabControl.Controls.add(this.tabPage1)
...
tabPage1.Controls.add(this.Label1);
tabPage1.Controls.add(MsChat);
tabPage1.Controls.add(...);


Исходя из этого получается index =1 , вот и все))
Объяснил как смог)) Если че пиши)
PM MAIL   Вверх
ДобренькийПапаша
Дата 14.4.2010, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 14.1.2006
Где: г.Москва

Репутация: 3
Всего: 7



Цитата(Smoke89 @ 14.4.2010,  13:55)
Вообще заходишь Form1.Designer.cs или как там у тебя форма называется. В нем находишь, что то типа...

Код

TabControl.Controls.add(this.tabPage1)
...
tabPage1.Controls.add(this.Label1);
tabPage1.Controls.add(MsChat);
tabPage1.Controls.add(...);


Исходя из этого получается index =1 , вот и все))
Объяснил как смог)) Если че пиши)

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


--------------------
Меня зовут Себастьян Парейра, торговец чёрным деревом.
PM MAIL   Вверх
Smoke89
Дата 14.4.2010, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 7.2.2009

Репутация: нет
Всего: нет



Эх... не до конца ты меня понял, хотя может и я не понял))
У меня тоже проект и там десятки табов , но это не выжно))

Т.е. смотри какая ситуация. 
У тебя количество контролов на каждом Табе одинаково? (т.е. табы сами по себе выглядят одинаково просто у них разный MSChat ну и там Label всякие) .
TabPage у тебя генерируется все время одинаковый же, просто разная инфа в нем отображается?

Если да, то щас сделаю пример)
PM MAIL   Вверх
ДобренькийПапаша
Дата 14.4.2010, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 14.1.2006
Где: г.Москва

Репутация: 3
Всего: 7



Просто разный MS Chart.


--------------------
Меня зовут Себастьян Парейра, торговец чёрным деревом.
PM MAIL   Вверх
Smoke89
Дата 14.4.2010, 15:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 7.2.2009

Репутация: нет
Всего: нет



Пример отправил на мыло.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0520 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.