Câu hỏi lạ, nhưng câu hỏi đó hơi khó hiểu. Trong những ngày cũ khi chúng tôi có Terminals và DOS, các ứng dụng thường chỉ có một "cửa sổ", và đó là một cửa sổ toàn màn hình. Khi mọi người chuyển sang chức năng, không có khái niệm về việc mở một cửa sổ mới, nhưng thay vào đó nội dung của cửa sổ chính bị ghi đè. Vì vậy, chỉ có một cửa sổ chính, nhưng nhiều màn hình được hiển thị trong đó.Triển khai nhiều màn hình trong một Ứng dụng
Làm thế nào để tạo ra một cái gì đó như thế trong một ứng dụng hiện đại, hoặc là WinForms hoặc WPF?
Dường như có hai phương pháp:
- Có nhiều cửa sổ. Đây là cách tiếp cận thông thường và thường điều này có ý nghĩa để cho phép người dùng làm việc với nhiều cửa sổ cùng một lúc, nhưng điều này có thể không được yêu cầu/mong muốn. Sử dụng ShowDialog() thay vì Show() là cách thông thường để tạo ra Window Modal thứ hai.
- Chỉ có một cửa sổ, nhưng với một TabControl trên đó. Ẩn các tab và chuyển đổi chúng theo lập trình. Điều này gần với hành vi "Một cửa sổ, nhiều màn hình", nhưng tự nhiên nó bị lộn xộn vì bạn có tất cả các điều khiển trong cùng một lớp Biểu mẫu (mặc dù người ta có thể lập luận rằng điều này buộc đặt tên đúng các điều khiển. các lớp học một phần và một .cs trên mỗi màn hình)
Tôi tự hỏi nếu có cách nào tốt hơn? Về cơ bản một cái gì đó nói rằng "Hãy nhìn xem, tôi không quan tâm về công cụ như phong cách biên giới/biểu tượng hoặc dải trình đơn chính. Tất cả tôi muốn là bạn làm cho màn hình này vào khu vực này". Kinda như ASP.net Master Pages, nơi các trang thực sự chỉ xác định nội dung được đưa vào Placeholders.
Có một số cơ chế thích hợp để làm điều gì đó như vậy không?
Hoặc có vấn đề gì với toàn bộ cách tiếp cận?
+1; Tôi chỉ viết một biến thể của câu trả lời này. Bây giờ tôi không phải làm vậy! –
Đó là một ý tưởng tuyệt vời, đặc biệt là vì Điều khiển Người dùng có thể được đặt trong các vùng chứa khác 8 như bảng điều khiển), điều này khiến cho việc quản lý không gây đau đớn. –