Tôi nghĩ rằng sử dụng các thành phần phi UI trong nhà thiết kế ít nhất có những lợi ích sau:
Hỗ trợ thiết kế thời gian
Một trong những điều mạnh mẽ nhất mà bạn có trong cửa sổ hình thức là khả năng sử dụng được thiết kế riêng để thiết lập thành phần.
Mặc dù Timer
không phải là thành phần giao diện người dùng nhưng bạn có thể đặt các thuộc tính của nó như khoảng thời gian thiết kế. Điều này áp dụng cho nhiều thành phần khác như BindingSource
, ErrorProvider
, ... mà bạn có thể sử dụng lưới thuộc tính rất thân thiện và trình chỉnh sửa loại và trình chuyển đổi loại để định cấu hình thuộc tính vào thời gian thiết kế.
- Khi bạn muốn định cấu hình thuộc tính phụ thuộc cho các điều khiển khác; ví dụ bằng cách thêm
BindingSource
vào thiết kế, nó làm cho dữ liệu ràng buộc rất dễ dàng.
- Khi bạn cần sử dụng các nhà cung cấp mở rộng như
HelpProvider
và Tooltip
, vì chúng có liên quan đến các điều khiển khác, việc định cấu hình chúng ở chế độ thiết kế rất dễ dàng.
- Khi bạn cần định cấu hình các thuộc tính như
DataSource
và DataMember
, rất thân thiện khi sử dụng thiết kế và sử dụng các tính năng lưới lớn của thuộc tính.
- Các thành phần sẽ thêm làm trường cấp lớp và bạn có thể đặt chúng ở chế độ công khai bằng cách sử dụng trình khử.
- Khi bạn cần sử dụng tính năng
Localizable
của Form
cho các thành phần của mình, tính năng này hoàn toàn khả dụng khi sử dụng thiết kế.
- Khi bạn chỉ cần thêm hoặc xóa trình xử lý sự kiện, bạn có thể thực hiện việc đó bằng lưới thuộc tính.
Mã Chuẩn
Nếu bạn có một cái nhìn tại nhà thiết kế tạo ra mã bạn sẽ thấy:
- tạo mã cho các thành phần hỗ trợ
ISupportInitialize
sử dụng mã BeginInit
và EndInit
- tạo của họ đối với các thành phần, hãy chuyển
this.components
đến hàm tạo và sau đó sử dụng nó khi Dispose
Nếu bạn không cần hỗ trợ thiết kế thời gian và bạn viết mã tiêu chuẩn cho các thành phần, do đó, hoàn toàn OK để sử dụng chủ đề trong mã.
Nguồn
2015-09-26 20:03:41
InitializeComponent() có mã cho những thứ bạn vừa mới bỏ, nếu tôi hiểu chính xác bạn – brykneval
@brykneval Tôi biết người thiết kế khai báo và khởi tạo thành phần ở đâu, nhưng tôi không hiểu lợi ích của việc sử dụng nhà thiết kế cho thành phần không phải giao diện người dùng. – Wizard79
Bạn có thể kiểm tra xem đối tượng có triển khai 'IDisposable' hay không, liệu nhà thiết kế có thêm lệnh' Dispose() 'trong' Disposing (bool disposing) 'hay không. Hoặc làm một tìm tất cả các tài liệu tham khảo về tên biến và xem nếu có bất kỳ mã được thêm vào (bên cạnh hiển nhiên). – Loathing