2008-09-04 50 views
8

Sử dụng C# 2.0 cách tốt nhất để thực hiện điều khiển biểu mẫu động là gì?Điều khiển biểu mẫu động

Tôi cần cung cấp bộ điều khiển cho mỗi đối tượng dữ liệu, vì vậy tôi chỉ nên làm điều đó theo cách thủ công và đặt chúng ra trong khi tăng giá trị cao nhất hoặc có cách nào tốt hơn không?

Trả lời

8

Bạn có thể sử dụng bảng có bố cục tự động như FlowLayoutPanelTableLayoutPanel.

Rất tiếc, chỉ có 2 ô có bố cục tự động ngoài hộp nhưng bạn có thể tạo bảng điều khiển bố cục tùy chỉnh.

Tôi muốn giới thiệu bạn đọc bài viết sau đây:

How to: Create a Resizable Windows Form for Data Entry

Walkthrough: Creating a Resizable Windows Form for Data Entry

tùy chọn khác sẽ được sử dụng trong WPF (Windows Presentation Presentation).
WPF là một kết hợp hoàn hảo cho nhiệm vụ của bạn.
Điều khiển WPF có thể được lưu trữ trong các ứng dụng WinForms để bạn không phải chuyển sang hoàn toàn.

1

Bạn có ý nghĩa gì bởi "động"? Một bộ điều khiển cố định mới cho mỗi hàng dữ liệu trong tập dữ liệu? Sau đó, sử dụng một số UserControl có chứa các điều khiển của bạn. Hoặc bạn có nghĩa là, tùy thuộc vào bố cục dữ liệu của bạn, bạn có muốn cung cấp cho người dùng một bộ điều khiển tùy chỉnh, giả sử, một TextBox cho mỗi cột không? Có phải không?

1

Vâng, tôi đã tìm thấy bố cục điều khiển bằng tay theo cách thủ công (tăng thuộc tính Hàng đầu của họ theo chiều cao của điều khiển cộng với lề khi tôi đi) để có hiệu quả hợp lý.

Một cách tiếp cận khác là đặt các điều khiển của bạn trong Bảng có Gắn đế bộ lên trên cùng, sao cho mỗi bảng điều khiển liên tiếp đều chống lại điểm trên. Sau đó, bạn có thể chuyển đổi chế độ hiển thị của các bảng riêng lẻ và các điều khiển bên dưới sẽ chụp nhanh để lấp đầy khoảng trống có sẵn. Hãy lưu ý rằng điều này có thể là một chút không thể đoán trước: hiển thị một bảng điều khiển ẩn được cập cảng đôi khi có thể thay đổi vị trí của nó so với các điều khiển được gắn kết khác.

1

Đó là cách chúng tôi đang thực hiện ngay bây giờ trong một dự án. nhưng điều đó chỉ hữu ích cho các trường hợp đơn giản. Tôi đề nghị bạn sử dụng một số loại mẫu cho các trường hợp phức tạp hơn.

Ví dụ: tôi đã sử dụng Reflection để ánh xạ một loại điều khiển nhất định tới một thuộc tính nhất định trên đối tượng miền của tôi trên một dự án cũ hơn.

Bạn có thể thử tạo mã từ các mẫu bằng cách sử dụng t4 xem T4 Templates in Visual Studio for Code Generation Screencast cho một ví dụ đơn giản. Bạn có thể áp dụng điều này cho WinForms.

Ngoài ra DevExperience có một khung công tác tốt (đắt tiền), xem DevExpress eXpressApp Framework™.

2

@ Tôi biết câu hỏi này là về Windows Forms, nhưng bạn chắc chắn nên bắt đầu xem WPF. Loại kịch bản này là thực sự là dễ dàng trong WPF với DataTemplates và TemplateSelectors.

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