2009-07-20 38 views
7

Là một câu hỏi tương tự như this question, tôi cũng có một ứng dụng với một DataGridView trên đó. Tôi muốn định vị các hàng sao cho một hàng cụ thể nằm ở cuối phần hiển thị của danh sách.Làm cách nào để định vị một DataGridView cho một hàng cụ thể (để hàng được chọn ở dưới cùng)?

Đây là phản hồi cho lần nhấp vào nút di chuyển một hàng xuống một. Tôi muốn duy trì sự lựa chọn trên hàng tôi đang di chuyển (tôi đã có phần này hoạt động). Nếu có nhiều hàng, hàng đã chọn có thể di chuyển bên dưới vùng hiển thị. Tôi muốn cuộn xuống cho đến khi nó ở dưới cùng của khu vực nhìn thấy được.

Dường như không đồng hành LastDisplayedScrollingRowIndex với FirstDisplayedScrollingRowIndex.

Bất kỳ ý tưởng nào? Cảm ơn.

Trả lời

9

Theo dự đoán của riêng tôi, tôi nghĩ rằng tôi cần phải sử dụng FirstDisplayedScrollingRowIndex và số hàng có thể nhìn thấy trong DataGridView để tính toán FirstDisplayedScrollingRowIndex mới. Có lẽ tôi chỉ cần tìm ra thuộc tính NumberOfVisibleRows được gọi là gì?

Tìm thấy. DisplayedRowCount:

if (dataGridView.FirstDisplayedScrollingRowIndex + dataGridView.DisplayedRowCount(false) <= selectedRowIndex) 
{ 
    dataGridView.FirstDisplayedScrollingRowIndex = 
     selectedRowIndex - dataGridView.DisplayedRowCount(false) + 1; 
} 

Mã được thử nghiệm và làm việc trong dự án của riêng tôi.

5

Phương thức DisplayedRowCount sẽ cho bạn biết có bao nhiêu hàng được hiển thị trên màn hình. Đặt giá trị tham số thành đúng để bao gồm một phần hàng.

var displayedRows = myDataGridView.DisplayedRowCount(false); 
+0

Cảm ơn. Bạn nhận được một upvote (mặc dù tôi tìm thấy nó bản thân mình trước khi tôi nhìn thấy câu trả lời của bạn) nhưng tôi sẽ đặt câu trả lời của riêng tôi như được chấp nhận vì nó có một mẫu mã làm việc. –

+0

Tôi đã được về để xây dựng câu trả lời của tôi nhưng tôi thấy rằng bạn tìm thấy giải pháp cho mình ngay sau khi tôi đăng này ;-) –

Các vấn đề liên quan