Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 11 kết quả

Đề tài: Progress bar chạy khi đang có sự kiện xảy ra thì làm thế nào?

  1. #1
    Ngày gia nhập
    11 2010
    Bài viết
    85

    Mặc định Progress bar chạy khi đang có sự kiện xảy ra thì làm thế nào?

    Mình có 1 form load dữ liệu lên datagridview nhưng dữ liệu quá nhiều nên khi load nó sẽ tốn thời gian, mình muốn trong khi đang load thì hiện lên progressbar hiển thị trạng thái load dc bao nhiu %.

    Minh đã tìm hiểu nhưng chỉ biết cách set giá trị min và max là 1 số cụ thể hay thời gian cho nó chạy thôi, còn trong sự kiện load thì nó chỉ đổ dữ liệu vào datagridview ko có sử dụng vòng lập vậy thì làm sao biết dc giá trị min và max để nó chạy

    bạn nào biết chỉ giúp với nhé. Thanks :(

  2. #2
    Ngày gia nhập
    03 2009
    Bài viết
    173

    Code:
                    ulong pos = 0;
                    while (pos < fileSize)
                    {
                        nr = socket.Receive(buf);
                        if (nr <= 0)
                        {
                            throw new Exception("Receive 0 byte");
                        }
    
                        pos += (ulong)nr;
                        fs.Write(buf, 0, nr);
    
                        frm.progressBar1.Value = (int)(((double)frm.progressBar1.Maximum * (double)pos) / (double)fileSize + 0.5);
                        Application.DoEvents();
                    }
    đây là code trong project P2P transfer của bạn meoconlongvang , mình xin phép post lên để bạn tham khảo , mình nhắc lại là bê nguyên code này vào sẽ ko chạy

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

    code đó mình ko hiểu cách chạy như thế nào nữa

    nếu hiểu bạn có thể giải thích giúp quá trình thục thi Load và nó hạy progressbar ko?

    bạn chỉ copy 1 đoạn rồi các khai báo ở trên như thế nào?

    hoặc bạn copy nguyên code của file c# đó cho mình xem thử với

  4. #4
    Ngày gia nhập
    05 2010
    Bài viết
    505

    Bạn dùng Background Worker, có thể xem các hướng dẫn trên mạng, nếu ko làm đc thì mai mình sẽ làm giúp 1 cái demo

  5. #5
    Ngày gia nhập
    11 2010
    Bài viết
    85

    bạn cho mình 1 cái demo thử với, mình có tìm về Background Worker nhưng nó cũng vẫn có mấy cái ví dụ nằm trong vong lập for ko ah

    Code:
    private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
            {
                for (int i = 0; i < 100; i++)
                {
                    Thread.Sleep(10);  // dừng 100 miliseconds
                    backgroundWorker11.ReportProgress(i); // Báo tiến trình
                    // Trong khi thực hiện, kiểm tra nếu người dùng đã cancel => ta dừng tiến trình (return)
                    if (backgroundWorker11.CancellationPending)
                    {
                        e.Cancel = true;
                        backgroundWorker11.ReportProgress(0);
                        return;
                    }
                }
            }
    vậy chương trình mình lúc đổ vào datagridview đâu cso xài cái for minh biết đặt j chỗ backgroundWorker11.ReportProgress(i); // Báo tiến trình

    tui muốn cho nó chạy lúc mình load dữ liẹu lên mà dữ liệu quá nhiều có 1 khoảng thời gian khoảng 3s bị đứng thì nó chạy đứng 3s = 100% còn nếu nhiều hơn nữa thì nó cũng sẽ chạy thanh progressbar lâu hơn chứ ko có thời gian cố định
    Đã được chỉnh sửa lần cuối bởi vienchantam : 02-11-2011 lúc 07:24 AM.

  6. #6
    Ngày gia nhập
    11 2010
    Bài viết
    85

    Mặc định Progress bar chạy khi đang có sự kiện xảy ra thì làm thế nào?

    cái này ko ai biết hết sao, tìm nhiều rồi mà ko thấy

  7. #7
    Ngày gia nhập
    04 2010
    Nơi ở
    My Computer
    Bài viết
    195

    Bạn phải dùng kết hợp với BackgroundWorker
    Hôm nào em ra đi anh thẫn thờ trên phố nhỏ
    Mây chiều giăng lối đi em đứng nhìn mắt bơ vơ
    Tóc xõa từ bờ vai hoen mi sầu rưng rưng lệ
    Cho tròn tuổi tình yêu lúc ban đầu xa cách nhau

  8. #8
    Ngày gia nhập
    11 2010
    Bài viết
    85

    Trích dẫn Nguyên bản được gửi bởi thach.thuc Xem bài viết
    Bạn phải dùng kết hợp với BackgroundWorker
    tui đã làm thử bao nhiu vd rồi vẫn ko thể làm như ý muốn dc, làm sao để biết % công việc đang dc chạy giống như phần mềm cắt ghép file FFSJ vậy đó

  9. #9
    Ngày gia nhập
    11 2010
    Bài viết
    85

    Sao ko ai biết làm hết sao vậy trời

  10. #10
    Ngày gia nhập
    08 2009
    Bài viết
    5

    Trích dẫn Nguyên bản được gửi bởi vienchantam Xem bài viết
    sao ko ai biết làm hết sao vậy trời (d>
    bạn mình tham khảo thử cái này
    Attached Files Attached Files

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

  1. Tạo một Progress bar trong lập trình C# như thế nào?
    Gửi bởi [Mr.Pete] trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 6
    Bài viết cuối: 13-04-2013, 07:59 PM
  2. Tạo một progress bar thật fantasy trong XNA
    Gửi bởi Fredy trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 5
    Bài viết cuối: 10-07-2012, 09:09 AM
  3. Cách sử dụng Progress bar trong lập trình C# như thế nào?
    Gửi bởi khangtv.fitus trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 0
    Bài viết cuối: 25-11-2010, 03:13 PM
  4. Cần hỏi về Progress bar
    Gửi bởi dnguyen1987 trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 7
    Bài viết cuối: 25-12-2009, 04:50 PM
  5. Progress Control trong MFC- Xin hỏi kinh nghiệm dùng Progress Control?
    Gửi bởi keancaptinh trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 0
    Bài viết cuối: 16-04-2009, 06:44 AM

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