Từ 1 tới 4 trên tổng số 4 kết quả

Đề tài: Lỗi khi sử dụng DispatcherTimer: Quá trình xử lí diễn ra quá nhanh sau mỗi lần click

  1. #1
    Ngày gia nhập
    03 2009
    Nơi ở
    my home ^^
    Bài viết
    61

    Mặc định Lỗi khi sử dụng DispatcherTimer: Quá trình xử lí diễn ra quá nhanh sau mỗi lần click

    topic trước vừa bị cho vào list vi phạm nên mình sẽ post lại!

    Giả sử mình có Code như sau:
    Code:
    void btnKT_Click(object sender, RoutedEventArgs e)
    {
                DispatcherTimer timer = new DispatcherTimer();
                timer.Tick += delegate(object s, EventArgs args)
                {
                    textBox1.Text = (t++).ToString();
                };
    
                timer.Interval = new TimeSpan(0, 0, 0, 0, 1000);
                
                timer.Start();
    }
    vấn đề của mình ở đây là cứ mỗi lần sau khi click vào button thì quá trình hiển thị ra textbox sẽ nhanh hơn giống như là giá trị 1000 trong TimeSpan giảm dần sau mỗi lần click vậy.
    vd: mình để 1000ms như ở trên thì cứ sau 1s là textbox sẽ hiển thị kết quả sau lần click thứ 1. tuy nhiên, sau lần click thứ 2 thì thời gian rút ngắn xuống, giả sử là 500ms. vậy là click càng nhiều thì quá trình diễn ra càng nhanh. nhưng ở đây mình muốn giữ nguyên cách hiển thị,, không muốn nó quá nhanh như vậy.
    Ai có cách khắc phục thì giúp mình vs.

    thanks demon1989 đã giúp:
    Bạn thử set
    Interval = TimeSpan.FromSeconds(1);
    hoặc nếu có thể thì dùng Storyboad
    tuy nhiên cách của bạn không được. mình cũng đã dùng thử storyboad trước đó nhưng kết quả cũng không khác.
    M|R.S!!!!!!!!!!!

  2. #2
    Ngày gia nhập
    09 2009
    Nơi ở
    TP HCM
    Bài viết
    17

    Bạn thử cách này chưa nhỉ
    Ref Link Code:
    Ah,bạn có dùng CompositionTarget không?

  3. #3
    Ngày gia nhập
    10 2010
    Bài viết
    7

    Bạn đưa cái khai báo timer ra ngoài rồi sửa code thành thế này nhé.
    Code:
    if (timer == null || !timer.IsEnabled)
                {
                    timer = new DispatcherTimer();
                    timer.Tick += delegate(object s, EventArgs args)
                    {
                        textBox1.Text = (t++).ToString();
                    };
    
                    timer.Interval = new TimeSpan(0, 0, 0, 0, 1000);
    
                    timer.Start();
                }

  4. #4
    Ngày gia nhập
    03 2009
    Nơi ở
    my home ^^
    Bài viết
    61

    cách của demon thì hoàn toàn k được, mình đã thử các cách đó từ trước.

    thanks philip12a8, cách của bạn rất tốt!
    M|R.S!!!!!!!!!!!

Các đề tài tương tự

  1. Đăng ký với 12 BET để kiếm tiền!Click nhanh.
    Gửi bởi kiemtien68 trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 1
    Bài viết cuối: 31-08-2012, 04:36 AM
  2. Dự đoán kết quả Euro có tiền. Click nhanh
    Gửi bởi hoangtuseo9 trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 2
    Bài viết cuối: 30-08-2012, 07:40 PM
  3. Làm giàu nhanh chỉ bằng cái click chuột
    Gửi bởi ngoctrinhdgv trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 30-07-2012, 08:52 AM
  4. Lam giau nhanh chong bang cai click chuot
    Gửi bởi ngoctrinhdgv trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 02-07-2012, 05:11 PM
  5. cách bắt sự kiện click chuột quá nhanh
    Gửi bởi khatmau90 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 6
    Bài viết cuối: 08-10-2011, 06:25 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn