Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
Megatron13
9 / 7 / 0
Регистрация: 09.08.2012
Сообщений: 79
1

Таймер на каждой вкладке

09.07.2013, 21:36. Просмотров 986. Ответов 7
Метки нет (Все метки)

Всем привет! У меня есть приложение windows forms. фактически это tabcontrol и на каждой вкладке элементы управления. Вкладки юзер создает сам (может создать сколько хочет) и на каждой вкладке одни и те же элементы. И вот мне понадобилось сделать timer под каждую вкладку. но есть проблема:
timer это не какой-нибудь textbox. его я не добавлю на создаваемую юзером вкладку. а потом не обращусь
for each c in tabcontrol1.Selectedtab.Controls
if c.name = "bla bla" then

то есть я не знаю каким образом насоздавать кучу таймеров которые будут обслуживать разные вкладки. помогите пожалуйста, подскажите, как это сделать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.07.2013, 21:36
Ответы с готовыми решениями:

TabControl цвет вкладке
Подскажите пожалуйста, как в TabControl изменить цвет вкладки когда она...

Создание textbox во вкладке TabControl
Здравствуйте. Имеется Tabcontrol и в нем несколько вкладок. На каждой вкладке -...

Иконка на вкладке таб контрола
Вот такой вопрос, имеется код для создания иконки на вкладке таб контрола:...

Как открыть в новой вкладке WebBrowser
При нажатии на ссылку в WebBrowser она открывается в IE на моем компьютере. Как...

Сохранение текста из RichTextBox в текущей вкладке tabControl
Всем привет!)) Вот у меня появилась проблема: У меня есть кнопка и если я на...

7
MrGladus
169 / 169 / 50
Регистрация: 06.01.2013
Сообщений: 392
09.07.2013, 21:57 2
Если предусматривается одновременная работа с разными вкладками (одновременный запуск нескольких таймеров) то тогда надо создавать их несколько, но если одновременно будет работать только один таймер то тогда не надо их кучу создавать, а теперь по делу:
создание таймера:
C#
1
2
3
4
5
6
7
8
var timer = new Timer
{
Interval = 1000
};
timer.Tick += (s, e) => {
//Событие при тике таймера
};
timer.Start(); //timer.Stop();
0
Megatron13
9 / 7 / 0
Регистрация: 09.08.2012
Сообщений: 79
09.07.2013, 22:06  [ТС] 3
спасибо, но нужно, чтобы работали они все вместе. и создавать их надо во время работы программы. в этом то и вся загвоздка.
0
MrGladus
169 / 169 / 50
Регистрация: 06.01.2013
Сообщений: 392
09.07.2013, 22:11 4
Цитата Сообщение от Megatron13 Посмотреть сообщение
спасибо, но нужно, чтобы работали они все вместе. и создавать их надо во время работы программы. в этом то и вся загвоздка.
И в чем собственно проблема? Выше я вам написал как создать таймер, если создать надо с десяток то используйте цикл
0
Megatron13
9 / 7 / 0
Регистрация: 09.08.2012
Сообщений: 79
11.07.2013, 01:38  [ТС] 5
Цитата Сообщение от MrGladus Посмотреть сообщение
в чем собственно проблема? Выше я вам написал как создать таймер, если создать надо с десяток то используйте цикл
каким образом я создам кучу разных таймеров?
имеется ввиду, что юзер жмет на кнопку "создать вкладку", далее делает какие-то операции и затем задает время таймера, а потом его запускает. то есть для каждой вкладки должен быть свой УНИКАЛЬНЫЙ таймер, с уникальным временем (заданным с вкладки) и по истечении времени, таймер будет запускать процедуру со своими, УНИКАЛЬНЫМИ для каждой вкладки параметрами. все таймеры работают ОДНОВРЕМЕННО.
таймер у меня создается с кнопки на вкладке. если создавать с одним и тем же именем переменной (как вы предлагаете), то при создании еще одной вкладки и нажатии на кнопку будет просто сброс таймера и запуск с новым временем и параметрами. а мне надо, чтобы при каждой новой вкладке у меня создавался таймер с новым именем переменной (и новым временем и т.д. и т.п.). и вот в этом то у меня и проблема.
0
nio
5954 / 3360 / 335
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
11.07.2013, 09:49 6
Цитата Сообщение от Megatron13 Посмотреть сообщение
на каждой вкладке одни и те же элементы
это ключевая фраза, из которой я бы принял решение создать пользовательский контрол с этими одинаковыми элементами управления. Таймер я бы тоже включил в этот UserControl (насколько я понял, он будет обслуживать именно эти "одни и те же элементы").
Дальше делается создание новой вкладки с этим пользовательским контролом и каким-то открытым методом вызывается отображение окна настройки таймера. профит !
1
Spectral-Owl
576 / 554 / 155
Регистрация: 29.06.2010
Сообщений: 1,588
Завершенные тесты: 1
11.07.2013, 17:41 7
таймер можно занести в свойство tabPage.Tag, благо оно тип object. Хотя лучше всё-же сделать так как советует nio, это и правильнее, и к контролам не нужно будет обращаться так:
C#
1
2
for each c in tabcontrol1.Selectedtab.Controls
if c.name = "bla bla" then
то ещё извращение... =)
1
Megatron13
9 / 7 / 0
Регистрация: 09.08.2012
Сообщений: 79
12.07.2013, 03:42  [ТС] 8
спасибо за подсказку! сделал usercontrol и все действительно упростилось, и таймер повесил. спасибо еще раз.
0
12.07.2013, 03:42
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.07.2013, 03:42

Как отобразить на другой вкладке tabControl картинку?
На tabControl1 имеется несколько вкладок, на первой вкладке располагается...

Получить индекс вкладки в tabControl по заголовку в этой вкладке
собственно вопрос в названии...

Как можно открыть ссылку в новой вкладке Webbrowser?
Привет всем! Вопрос - как можно открыть ссылку в новой вкладке. Есть...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru