Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 18.12.2015
Сообщений: 49

Влияет ли событие таймера на активацию формы?

04.06.2016, 19:34. Показов 678. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть несколько не модальных форм. В одной из форме существует таймер. Вопрос событие таймера влияет на активацию формы? Проблема в том что эта форма постоянно вылазиет на передней план и перехватывает контроль на себя. Поэтому другими формами я не могу пользоваться, только в период таймаута. Как исправить?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.06.2016, 19:34
Ответы с готовыми решениями:

Какое событие отвечает за активацию элемента на форме?
к примеру активируется элемент этой функцией: edit4.SetFocus; и так как курсор на элементе едит4,то хочу поставить на событие в элементе...

MDI интерфейс: запретить активацию главной формы даже при использовании ее компонентов
Добрый день. Возникло желание сделать MDI интерфейс подобный MS Visual Studio. В главной форме у меня находится панель управления и все...

Событие остановки таймера
Не могу сообразить, как определить, что таймер остановлен? Например, я нажимаю на кнопку, таймер запускается и деактивирует (button.Enabled...

8
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18298 / 14222 / 5368
Регистрация: 17.03.2014
Сообщений: 28,900
Записей в блоге: 1
05.06.2016, 07:33
Sank1, что именно делается в обработчике таймера?
0
0 / 0 / 0
Регистрация: 18.12.2015
Сообщений: 49
05.06.2016, 12:20  [ТС]
Вывод графика на экран рассчеты.
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18298 / 14222 / 5368
Регистрация: 17.03.2014
Сообщений: 28,900
Записей в блоге: 1
05.06.2016, 16:49
Sank1, наверное рисование и вызывает активизацию окна. Код можешь выложить?
0
0 / 0 / 0
Регистрация: 18.12.2015
Сообщений: 49
05.06.2016, 18:09  [ТС]
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
 private void timer1_Tick(object sender, EventArgs e)
        {
            lock (sync) // Разблокировка
            {
                if (!internetActionFinished)
                {
                    return;
                }
            }
 
            if (!internetInitialized)
            {
                internetInitialized = true;
                lastUpdate = Conect(value, lastUpdate, 1000000, inet); // соединение для получения посоеднего времени
 
                GraphY EURUSD = new GraphY();
                EURUSD.Y(chart1, massYInetB[massYInetB.Count - 1]); // доработать класс
                Cursor = Cursors.Default;
              
            } 
 
            double dTime = (DateTime.Now - new DateTime(1970, 1, 1, 0, 0, 0, 0)).TotalSeconds -15; // Текущее время
            int NowTime;
            NowTime = Convert.ToInt32(dTime); // текущее время (работает)
 
          if (inet == true)
          {
            var webReq1 = WebRequest.Create("http://currency-dred95.rhcloud.com/get_currency.php?time=" + NowTime + "&limit=" + 1 + "&sign=" + value); // запрос на сайт 
            WebResponse webRes1 = webReq1.GetResponse(); // получение ответа
            Stream st = webRes1.GetResponseStream(); // поток по которому получаем инфу
            StreamReader sr = new StreamReader(st); // прочитать поток
            string texts = sr.ReadToEnd(); // получение прочтенной записи
            Regex regex = new Regex(@"((\d{10,20})|(\d{1,20})\.(\d{1,4}))"); // регулярное выражение 
            MatchCollection M = regex.Matches(texts);
               
              if (tic == 0)
                {
                    poslchislo = massYInetA[massYInetB.Count - 1]; // Присвоение к последнему числу в записи
                }
 
                if (tic == 0)
                {
                    poslchislo1 = massYInetB[massYInetA.Count - 1]; // Присвоение к последнему числу в записи
                }
 
            if (M.Count > 0)
            {
              Buffer.Add(Convert.ToDouble(M[1].Value)); // добавить в лист значения        
              BufferS.Add(Convert.ToDouble(M[2].Value)); // добавить в лист значения    
              poslchislo = Convert.ToDouble(M[1].Value);
              poslchislo1 = Convert.ToDouble(M[2].Value);
            }
            else 
            {                              
                Buffer.Add(poslchislo); // Добавление в массив последнего числа из файла (Так как на сервере новых записей не найдено)
                BufferS.Add(poslchislo1); // Добавление в массив последнего числа из файла (Так как на сервере новых записей не найдено)
            } 
 
             }
           else
          {
              Buffer.Add(massYInetA[massYInetA.Count - 1]); // Добавление в массив последнего числа из файла (Так как на сервере новых записей не найдено)
              BufferS.Add(massYInetB[massYInetB.Count - 1]); // Добавление в массив последнего числа из файла (Так как на сервере новых записей не найдено)
          }
 
          DateTime Date = (new DateTime(1970, 1, 1, 0, 0, 0, 0)).AddSeconds(NowTime); // время в формате UNIX
          DTIME.Add(Date); // добавление времени в лист
 
          tic = Update(tic, DTIME, NowTime); // функция по секунде
        }
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18298 / 14222 / 5368
Регистрация: 17.03.2014
Сообщений: 28,900
Записей в блоге: 1
05.06.2016, 18:58
Sank1, я вижу только одну строку которая возможно приводит к смене фокуса - это изменение курсора, но возможно это код в функции Update. Я бы попробовал комментировать части кода чтобы понять какое именно действие приводит к смене фокуса. Плюс если есть возможность я бы переделал алгориьм так чтобы перерисовка шла в событиях Paint, а таймер занимался бы только сбором данных.
0
0 / 0 / 0
Регистрация: 18.12.2015
Сообщений: 49
05.06.2016, 19:02  [ТС]
Курсор убирал. Все так же.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
public int Update(int tic, List<DateTime> DateT, double NowTime)
        {
            #region вызов Методов локализации формы
            tTip(); // локализация всплывающих подсказок
            CheckBox(); // переводчик 
            Button(); // переводчик  кнопок
            Menu(); // переводчик меню 
            #endregion
 
            chart1.MouseWheel += new MouseEventHandler(this.chart1_MouseWheel); // событие вращения колесика
            chart1.Focus(); // необходим фокус
            List<List<double>> poinl = new List<List<double>>(); // Точки изменения тренда
            Setting();
 
            
           
            chart1.Series[0].XValueType = ChartValueType.Time; // установление типа по икс время
 
            #region Склейка даннях из файла с буфером
            Draw q = new Draw();
            MainT = q.MainTime(DINET, DateT, tic, SpeedDraw.Speed); // Загрузка времени из файла
            MainV = q.MainValue(Buffer, massYInetB, tic, SpeedDraw.Speed); // Загрузка значения из файла ###Сделать загрузку данных изменяемой tic
            #endregion
 
            chart1.Series[0].Points.Clear();       
            chart1.Series[4].Points.AddXY(DateT[0].ToOADate(), Buffer[0]); // создаем костыль для графика чарт
            
            for (int hl = 0; MainT.Count - 1 >= hl; hl++)
            {
                chart1.Series[0].Points.AddXY(MainT[hl].ToOADate(), MainV[hl]); //  Построение главного графика
                
            }
 
            poinl = IntervalResistance(tic, Buffer, NowTime); // Получение точек смены тренда  // данные из буфера // доработать
 
            if (checkBox1.Checked == true)
            {
                Resis(poinl, tic, 0.0001, DateT); // рисуем уровни
            } 
            
            chart1.Update(); // обновление данных
 
            SMA(MainT, (int)numericUpDown1.Value, MainV); // Вызов метода для построения SMA 
            MinMax(MainV, MainT); // Минимумы и максимумы
 
            button8.Text = Convert.ToString(BufferS[tic]); // вывод значений на кнопку  по времени
            button1.Text = Convert.ToString(BufferS[tic]); // вывод значений на кнопку  по времени
            button7.Text = Convert.ToString(Buffer[tic]); // вывод значений на кнопку  по времени
            ZoomT(Zoom, tic); // Вызов метода  регуирования уровней времени
            tic++; // Подсчет тикового времени
            return tic;
        } // метод обновления данных
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18298 / 14222 / 5368
Регистрация: 17.03.2014
Сообщений: 28,900
Записей в блоге: 1
05.06.2016, 19:07
Sank1, секунду. Ты же сам ставишь фокус на элемент управления:
C#
1
chart1.Focus(); // необходим фокус
Если chart без этого не работает, то наверное стоит найти другой chart.
0
0 / 0 / 0
Регистрация: 18.12.2015
Сообщений: 49
05.06.2016, 21:03  [ТС]
Совсем забыл. Про это..... Спасибо вам
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.06.2016, 21:03
Помогаю со студенческими работами здесь

Передача параметров в событие таймера
Здравствуйте. Подскажите пожалуйста, как можно передать параметр в &quot;тик&quot; таймера (System.Timers)? string str = &quot;TestStr&quot;;...

Разработка таймера, событие счета
И снова сдрасти :) Решил написать я таймер свой, на потоке, почти все получилось :( не знаю как сделать &quot;обработчик&quot; как у...

Передача в событие таймера внутри цикла
Здравствуйте уважаемые форумчане!...хотел бы спросить, как выйти из тупиковой ситуации ... int i = 0; ...

Событие таймера не обрабатывается или не наступает
Есть форма, отслеживаем изменение определенного файла. При изменении файла меняем иконку программы в трее на 3 секунды, затем возвращаем...

Регулярно (событие таймера) проверять есть ли подключение к интернету.
Кто-нибудь напишите, плиз, программный код: Регулярно (событие таймера) проверяет есть ли подключение к интернету. И если он есть,...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru