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ố 13 kết quả

Đề tài: Cộng dồn các Cell trong DataGridView như thế nào?

  1. #1
    Ngày gia nhập
    05 2011
    Bài viết
    30

    Mặc định Cộng dồn các Cell trong DataGridView như thế nào?

    Trong DataGridView grd mình có 4 cột : Tổng, SL1, SL2, SL3
    Khi mình nhập giá trị vào cột SL1, sau đó nhảy sang cột SL2 thì cột Tổng hiện giá trị của SL1, nếu nhập xong cột SL2 và nhảy sang SL3 thì cột Tổng hiện giá trị tổng của SL1 và SL2.
    Ý mình là cộng dồn từng cột với nhau ấy, mình dùng CellValidating nhưng không được. Giúp mình với

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

    Bạn dùng CellValidated thử xem sao?
    Mình test thì ok

    Code:
      private void dataGridView1_CellValidated(object sender, DataGridViewCellEventArgs e)
            {
                if (e.ColumnIndex == 0)
                    dataGridView1[3, 0].Value = dataGridView1[e.ColumnIndex,e.RowIndex].Value;
                if(e.ColumnIndex==1)
                    dataGridView1[3, 0].Value = dataGridView1[e.ColumnIndex - 1, e.RowIndex].Value.ToString() + dataGridView1[e.ColumnIndex, e.RowIndex].Value.ToString();
            }

  3. #3
    Ngày gia nhập
    06 2011
    Bài viết
    277

    Bài của bạn KqPhu ở cái if thứ 2 đã bị sai rùi!!

    Nếu 2 cái đều là dạng chuỗi thì nó sẽ cộng dồn lại chứ ko phải là tăng theo kiểu số!!

    Vidu : 09 + 03 = 0903 (Vì nó là dạng chuỗi)

    Bạn phải chuyển nó thành kiểu double hoặc là int thì nó mới tính theo kiểu số đc.

    Cái thứ 2: Nếu ng nhập nhập từ vị trí số lượng 3 đi ngược lại thì sao. đến cái e.columnIndex == 0 thì tổng số tiền chỉ gán mỗi cái giá trị của ô đó thui sao ^^!

    Bạn nên dùng if lòng nhau để giải quyết vấn đề này!

    Bạn có thể thực hiện nó trong CellEndEdit cũng đc ^^!
    Sống là để cho đi và ...... Nhận lại

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

    Trích dẫn Nguyên bản được gửi bởi linhgl88 Xem bài viết
    Bài của bạn KqPhu ở cái if thứ 2 đã bị sai rùi!!

    Nếu 2 cái đều là dạng chuỗi thì nó sẽ cộng dồn lại chứ ko phải là tăng theo kiểu số!!

    Vidu : 09 + 03 = 0903 (Vì nó là dạng chuỗi)

    Bạn phải chuyển nó thành kiểu double hoặc là int thì nó mới tính theo kiểu số đc.

    Cái thứ 2: Nếu ng nhập nhập từ vị trí số lượng 3 đi ngược lại thì sao. đến cái e.columnIndex == 0 thì tổng số tiền chỉ gán mỗi cái giá trị của ô đó thui sao ^^!

    Bạn nên dùng if lòng nhau để giải quyết vấn đề này!

    Bạn có thể thực hiện nó trong CellEndEdit cũng đc ^^!
    Mình cố tình viết như vậy mà, vì chỉ để làm ví dụ thôi, chứ muốn cho đúng thì cần phải làm nhiều thứ nữa

  5. #5
    Ngày gia nhập
    05 2011
    Bài viết
    30

    Cám ơn các bạn cho mình ý tưởng . Mình giải quyết vấn đề này rồi

    private void grdNhan_CellEndEdit(object sender, DataGridViewCellEventArgs e)
    {
    double tong = 0;
    Double d = 0;
    int iDem = grdNhan.ColumnCount;
    for (int i = 1; i < iDem; i++)
    {
    if (grdNhan.CurrentRow.Cells[i].Value != null)
    {
    d =Convert.ToDouble( grdNhan.CurrentRow.Cells[i].Value);
    tong += d;
    }
    }
    grdNhan[0, 0].Value = tong.ToString("#,###");

    }

  6. #6
    Ngày gia nhập
    05 2011
    Bài viết
    30

    Mặc định Cộng dồn các Cell trong DataGridView như thế nào?

    Cho mình hỏi 1 vấn đề nhỏ nữa là khi nhập 1 giá trị không phải dạng số trong 1 cell bất kì thì khi mình chuyển sang cell khác thì nó tự động chuyển con trỏ về cell bị lỗi. MÌnh tìm Focus( )trong cell mà ko có

  7. #7
    Ngày gia nhập
    06 2011
    Bài viết
    277

    Trích dẫn Nguyên bản được gửi bởi k56flex Xem bài viết
    Cho mình hỏi 1 vấn đề nhỏ nữa là khi nhập 1 giá trị không phải dạng số trong 1 cell bất kì thì khi mình chuyển sang cell khác thì nó tự động chuyển con trỏ về cell bị lỗi. MÌnh tìm Focus( )trong cell mà ko có
    Bạn cứ thử thế này nhé!!

    Bạn phải xác định lại vị trí của cái ô đó khi endedit!

    sau đó bạn cho cái selected = true lại cái vị trí của cái cell đó!

    Rùi bạn cho datagridview.BeginEdit(false) là nó sẽ để dấu nháy ngay chỗ vị trí ban đầu cho bạn!

    Hi vọng giúp đc bạn!
    Sống là để cho đi và ...... Nhận lại

  8. #8
    Ngày gia nhập
    06 2011
    Bài viết
    277

    Bạn có thể làm theo cách của mấy bạn trong này!!

    http://forums.congdongcviet.com/showthread.php?t=29504

    Ok đó bạn ^^!
    Sống là để cho đi và ...... Nhận lại

  9. #9
    Ngày gia nhập
    05 2011
    Bài viết
    30

    mình cũng tham khảm mấy cách trong đó rồi nhưng thấy khó hiểu quá. Mình gọi e.FormattedValue trong event CellValidating xài cũng được.
    P/s: Nhân tiện cho mình hỏi làm sao định dạng dấu phân cách hàng nghìn trong các cell được ta?
    Ví dụ như mình đổ về 1 DataTable dt có 1 cột có giá trị 1000000. Khi mình dùng DataSource trong DataGridView grd để lấy cái table đó thì trong 1 cell của grd làm sao tự động chuyển thành 1.000.000 vậy bạn?
    Mình dùng grd.Columns[1].DefaultCellStyle.Format = "#.###";
    hay grd.Rows[0].Cells[1].Style.Format = "#.###"; vẫn không được, không hiểu sao nó vẫn nguyên xi 1000000

  10. #10
    Ngày gia nhập
    06 2011
    Bài viết
    277

    Đó là dấu thập phân mà!!

    Bạn thử thế này thử!

    Visual C# Code:
    1.  grd.Columns[1].DefaultCellStyle.Format ="##,0"

    hay
    Visual C# Code:
    1. grd.Columns[1].DefaultCellStyle.Format="N0"

    hay

    Visual C# Code:
    1. grd.Columns[1].DefaultCellStyle.Format="0,0.0"

    Cái nào cũng đc!! Thử đi nhé Bạn ^^!
    Đã được chỉnh sửa lần cuối bởi linhgl88 : 07-09-2011 lúc 11:58 PM.
    Sống là để cho đi và ...... Nhận lại

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

  1. edit 1 cell trong datagridview như thế nào?
    Gửi bởi angel_thanhthao trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 6
    Bài viết cuối: 18-09-2016, 09:25 AM
  2. Cách đưa control tuỳ chỉnh vào cell trong datagridview thế nào?
    Gửi bởi ttaiinfo trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 5
    Bài viết cuối: 10-10-2012, 11:10 PM
  3. Làm thế nào để khi nhập liệu vào 1 cell trong datagridview nhấn enter qua cell kế?
    Gửi bởi Trinhtiwaco trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 0
    Bài viết cuối: 11-09-2011, 05:22 PM
  4. Cách Tô Màu Từng Cell trong DataGridView Như Thế Nào ?
    Gửi bởi huuhung trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 1
    Bài viết cuối: 10-05-2011, 09:58 AM
  5. Muốn kiểm tra dữ liệu nhập vào cell trong datagridview thì làm thế nào
    Gửi bởi quocbb trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 1
    Bài viết cuối: 09-03-2010, 12:38 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