Tôi có một chế độ xem dữ liệu trên biểu mẫu với một số dữ liệu. Cột 1 chứa nút để xóa hàng. Làm thế nào chúng ta có thể vô hiệu hóa nút này hoặc toàn bộ hàng dựa trên một số điều kiện, do đó, hàng không thể bị xóa?Datagridview, vô hiệu hóa nút/hàng
Trả lời
Có thực sự là HowTo trên MSDN thực hiện chính xác việc này.
Chỉnh sửa: Đã thêm một số đề xuất khác.
Bạn có thể làm cho cột nút ẩn. Hoặc nếu bạn chỉ muốn vô hiệu hóa xóa một số hàng nhất định, bạn có thể đặt đúng hoặc sai trong mỗi thuộc tính DataGridViewRow
s và thuộc tính xử lý sự kiện nút của bạn, bạn chỉ xóa các giá trị được đặt thành false. Bạn có thể kết hợp điều này với chỉ thay đổi màu nền trước và nền của ô để làm cho nó trông bị vô hiệu hóa, màu này có thể được thực hiện trong trình xử lý sự kiện CellFormatting
hoặc thứ gì đó để bạn không phải lặp lại và tô màu nó bằng tay.
Tôi đã thấy điều đó trước đây nhưng phải có cách tốt hơn. – SoftwareGeek
@BhejaFry: Vâng, rất nhiều mã đó là làm cho nó trông đúng. Nếu bạn không quan tâm về điều đó có rất nhiều cách khác, tôi sẽ thêm một vài gợi ý vào câu trả lời của tôi vì nó dễ đọc hơn ở đó. –
Bạn có cân nhắc việc chuyển ô nút thành hộp văn bản trống thông thường bị vô hiệu hóa không?
Dim cell As DataGridViewButtonCell = dgv.row(x).cell(y)
cell = New DataGridViewTextBoxCell()
cell.value = String.Empty
cell.ReadOnly = True
Nó mất giáp của nó "Nút" xuất hiện và hòa hợp với phần còn lại của tế bào (giả sử bạn đang sử dụng chủ yếu là DataGridViewTextBoxCells mặc định).
Dưới đây là tương đương trong C#, cộng với nó Grays ra trường để làm cho nó trông read-only:
var cell = dgv[column, row] = new DataGridViewTextBoxCell();
cell.Value = ""; // ignored if this column is databound
cell.ReadOnly = true;
cell.Style.BackColor = Color.FromKnownColor(KnownColor.Control);
Đây là một bài cũ, nhưng tôi muốn đề nghị những gì tôi làm.
If conditionToDisable Then
Dim cell As New DataGridViewTextBoxCell 'Replace the ButtonCell for a TextCell'
cell.Value = valueForCell 'Set the value again'
grid.Rows(r).Cells(c) = cell 'Override the cell'
End If
Tôi hy vọng điều này hữu ích.
- 1. Vô hiệu hóa UISearchBar
- 2. Whats sự khác biệt giữa prop ('vô hiệu hóa', 'vô hiệu hóa') và chống đỡ ('vô hiệu hóa', đúng)
- 3. Làm thế nào để vô hiệu hóa khả năng chọn trong một DataGridView?
- 4. DataGridView cột loại DataGridViewCheckBoxCell liên tục chỉ đọc/vô hiệu hóa
- 5. Vô hiệu hóa jQuery Masonry
- 6. Vô hiệu hóa plugin Grails
- 7. VS2010 Vô hiệu hóa phác thảo trong xaml, (hoặc vô hiệu hóa phác thảo hoàn toàn)
- 8. Tạo một loại giá trị không thể vô hiệu hóa có thể vô hiệu hóa
- 9. Vô hiệu hóa backspace trong wpf
- 10. Vô hiệu hóa Webkit Input Form Shadow
- 11. Vô hiệu hóa bộ đệm đầu ra
- 12. Vô hiệu hóa mở rộng sau doubleclick
- 13. Vô hiệu hóa backreferences trong perl
- 14. QT - Cách vô hiệu hóa Nút ấn
- 15. OpenGL 3: glBindVertexArray vô hiệu hóa GL_ELEMENT_ARRAY_BUFFER
- 16. Vô hiệu hóa thẻ neo trong knockout.js
- 17. Cách ẩn/vô hiệu hóa admob adview?
- 18. Vô hiệu hóa kính lúp trong UITextField
- 19. Vô hiệu hóa màn hình khóa
- 20. Vô hiệu hóa Django Debugging cho Celery
- 21. Vô hiệu hóa đúng quảng cáo AdMob
- 22. UIPickerView vô hiệu hóa lựa chọn hàng
- 23. Vô hiệu hóa thành bitmap riêng
- 24. RichFaces 4 - cách vô hiệu hóa skin
- 25. jstree vô hiệu hóa hộp kiểm
- 26. jqgrid vô hiệu hóa tiêu đề
- 27. Vô hiệu hóa tạm thời-mark-mode
- 28. jquery - vô hiệu hóa nhấp vào
- 29. Điều kiện vô hiệu hóa Html.DropDownList
- 30. Google Spreadsheet - vô hiệu hóa chỉnh sửa
bản sao có thể có của [Làm cách nào để vô hiệu hóa một ô nút trong WinForms DataGrid?] (Http://stackoverflow.com/questions/86096/how-do-i-disable-a-button-cell-in-a -winforms-datagrid) –