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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вопрос о работе с таймером. TimeSpan 
V
    Опции темы
shark1
Дата 27.4.2008, 16:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Подскажите как такое можно сделать.Есть отрезок времени,разница помещается в txt(
Код

TimeSpan ts = dEnd - dStart;
            txt_twt.Text = ts.ToString();
).Как сделать чтоб следующий отрезок не стирал предыдущий а прибовлялся к ниму.Зарание спасибо.
PM MAIL   Вверх
vponomarov
Дата 27.4.2008, 20:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Код

TimeSpan ts =TimeSpan.TryParse(txt_twt.Text)+ dEnd - dStart;
txt_twt.Text = ts.ToString();



--------------------
user posted image
user posted image
PM MAIL ICQ   Вверх
shark1
Дата 28.4.2008, 07:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



vponomarov спасибо,только ругается:
No overload for method 'TryParse' takes '1' arguments,
подскажи что туда подставить.Спасибо.
PM MAIL   Вверх
mr.DUDA
Дата 28.4.2008, 10:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

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



Наверно, так:
Код
TimeSpan ts;
if (TimeSpan.TryParse(txt_twt.Text, out ts))
{
   ts += dEnd - dStart;
   txt_twt.Text = ts.ToString();
}

 smile 


--------------------
user posted image
PM MAIL WWW   Вверх
shark1
Дата 28.4.2008, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



mr.DUDA спасибо за ответ,но почемуто не срабатывает,т.е нет никакой ошибки,но и время не появляется в txt_twt,а вот с моими корявыми двумя строчками появляется.И еще,почемуто ,не понимаю почему, как только я запускаю время,оно появляется в верху вместо имени окна smile  ? зарание спасибо.
PM MAIL   Вверх
Optimus
Дата 28.4.2008, 17:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



shark1
а какой текст находится в txt_twt.Text, в этой строчке
Цитата(mr.DUDA @  28.4.2008,  10:42 Найти цитируемый пост)

Код

if (TimeSpan.TryParse(txt_twt.Text, out ts))



--------------------
"постановка задачи наполовину решает саму задачу"
PM MAIL   Вверх
shark1
Дата 28.4.2008, 18:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Должен по идее находиться вот это:

DateTime dStart = Convert.ToDateTime(txt_Clockbegin.Text);
DateTime dEnd = Convert.ToDateTime(txt_ClockEnd.Text);

TimeSpan ts;
if (TimeSpan.TryParse(txt_twt.Text, out ts))
{
   ts += dEnd - dStart;
   txt_twt.Text = ts.ToString();
}

PM MAIL   Вверх
Optimus
Дата 28.4.2008, 18:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



shark1
Цитата(Optimus @  28.4.2008,  17:46 Найти цитируемый пост)
какой текст находится в txt_twt.Text


Если там, на пример, пустая строка
то метод TryParse() возвращает false, и весь блок if'a пропускается.
--------------------
"постановка задачи наполовину решает саму задачу"
PM MAIL   Вверх
shark1
Дата 28.4.2008, 18:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Optimus там не пустая txt, при нажатии на чек бох:
Код

private void chb_Tbegin_Click(object sender, EventArgs e)
        {           
            this.txt_Clockbegin.Text = DateTime.Now.ToLongTimeString();
            tmrClock1.Enabled = !tmrClock1.Enabled;
            txt_ClockEnd.Text = DateTime.Now.ToLongTimeString();
            this.Text = DateTime.Now.ToLongTimeString();
            if (tmrClock1.Enabled = tmrClock1.Enabled)
                chb_TEnd.Visible = true;
           
            chb_TEnd.Checked = false;
            
        }

затем:
время останавливается:
Код

private void chb_TEnd_Click(object sender, EventArgs e)
        {
            
            tmrClock1.Enabled = false;
            DateTime dStart = Convert.ToDateTime(txt_Clockbegin.Text);
            DateTime dEnd = Convert.ToDateTime(txt_ClockEnd.Text);
            chb_TEnd.Hide();

            TimeSpan ts;
            if (TimeSpan.TryParse(txt_twt.Text, out ts))
            {
                ts += dEnd - dStart;
                txt_twt.Text = ts.ToString();
            }
                       chb_Tbegin.Checked = false;

            //this.txt_ProblemOn.Text = DateTime.Now.ToLongTimeString();
            //tmrClock.Enabled = !tmrClock.Enabled;
            //txt_ProblemOff.Text = DateTime.Now.ToLongTimeString();
            //this.Text = DateTime.Now.ToLongTimeString();     

        }


PM MAIL   Вверх
Optimus
Дата 28.4.2008, 18:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(shark1 @  28.4.2008,  18:40 Найти цитируемый пост)
там не пустая txt

из кода не видно.

поставьте MessageBox перед if'ом
Код

  // ...
  MessageBox.Show(txt_twt.Text);
  if (TimeSpan.TryParse(txt_twt.Text, out ts))
  // ...

напишите что выводится.
--------------------
"постановка задачи наполовину решает саму задачу"
PM MAIL   Вверх
shark1
Дата 28.4.2008, 19:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Твоя правда,нечего не выводится,но если я вставляю свои две строчки(TimeSpan ts = dEnd - dStart;
            txt_twt.Text = ts.ToString();) то тоже нечего не выводиться,однако время появляется в txt_twt.Спасибо.
PM MAIL   Вверх
Optimus
Дата 28.4.2008, 19:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Можно сделать так:
Код

  // ...
  private TimeSpan ts = new TimeSpan(); // или инициализируете в конструкторе
  // ...
  private void chb_TEnd_Click(object sender, EventArgs e)
  {
    // ...
    ts += dEnd - dStart;
    txt_twt.Text = ts.ToString();
    // ...
  }
  // ...

--------------------
"постановка задачи наполовину решает саму задачу"
PM MAIL   Вверх
shark1
Дата 28.4.2008, 19:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Окончательный код:
Код

private TimeSpan ts = new TimeSpan(); 
        
        private void chb_TEnd_Click(object sender, EventArgs e)
        {
            tmrClock1.Enabled = false;
            DateTime dStart = Convert.ToDateTime(txt_Clockbegin.Text);
            DateTime dEnd = Convert.ToDateTime(txt_ClockEnd.Text);
            chb_TEnd.Hide();
            ts += dEnd - dStart;
            txt_twt.Text = ts.ToString();
            
            chb_Tbegin.Checked = false;
        }

СПАСИБО большое,только если можно в двух словах обьясни,почему у меня не работало
PM MAIL   Вверх
Optimus
Дата 28.4.2008, 19:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(shark1 @  28.4.2008,  19:23 Найти цитируемый пост)
почему у меня не работало 

потому что переменная ts создавалась и удалялась в chb_TEnd_Click(),
соответственно теряли её значение.
--------------------
"постановка задачи наполовину решает саму задачу"
PM MAIL   Вверх
shark1
Дата 29.4.2008, 00:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Еще раз огромное спасибо.Век живи век учись.Большое тебе спасибо.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

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


 




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


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

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