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

Поиск:

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


Эксперт
***


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

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



Есть TabControl в нём вот так создаю вкладки и на каждую вкладку добавляю элемент MsChart.
Код

private void InitCharts()
        {
            byte currentTabPageIndex = 0;
            foreach (var currentInstrument in properties.InstrumentPeriod)
            {
                tabChart.TabPages.Add(currentInstrument.Key);
                tabChart.TabPages[currentTabPageIndex].Name = currentInstrument.Key;

                Chart chart = CreateChart(currentInstrument.Key, currentInstrument.Value);
                tabChart.TabPages[currentTabPageIndex].Controls.Add(chart);

                currentTabPageIndex++;
            }
        }


Потом мне нужно при изменении индекса выбранной вкладки получить ссылку на текущий элемент MsChart. Я это сделал вот так, но ссылка остаётся на объект MsChart, который был создан первым.
Код

private void tabChart_SelectedIndexChanged(object sender, EventArgs e)
        {
            this.currentChart = GetChart(tabChart.SelectedTab.TabIndex);
        }

        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   Вверх
AntonX
Дата 4.6.2010, 21:29 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



гораздо удобнее использовать Свойство Tag, которое есть почти у всех контролов и у TabPage тоже.

при создании новой страницы и размещении на ней объекта записывать этот объект в Tag.

tabPage.Tag = Chart;

таким образом, Можно через (tabControl1.SelectedTab.Tag as Chart) получить доступ к Chart, который на ней размещен. и никакого шаманства с индексами.



Это сообщение отредактировал(а) AntonX - 4.6.2010, 21:31
PM MAIL ICQ   Вверх
diadiavova
Дата 4.6.2010, 22:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

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



Цитата(ДобренькийПапаша @  31.5.2010,  15:56 Найти цитируемый пост)
Что делать? 

Создать собственную вкладку, у которой будет свойство, возвращающее нужный тебе контрол,, и добавлять её уже готовенькую.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

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


 




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


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

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