Tôi có nhiệm vụ tương tự để làm và giải pháp của tôi là như sau:
Thêm một TableLayoutPanel để hình của bạn (hoặc bất kỳ container).
Đặt các cột và hàng của TableLayoutPanel được tính là 1 và kích thước là 100%.
Đặt đế để tô.
Đặt GrowStyle thành fixedSize.
Đặt AutoSize thành true.
Sau đó lập trình thêm tất cả ba biểu mẫu/điều khiển, một trong số đó bạn phải hiển thị tùy thuộc vào lựa chọn nút radio. Hãy chắc chắn rằng chỉ một trong số họ có thể nhìn thấy được. Điều đó có thể được thực hiện với FirstControl.Show() ban đầu; và sau đó trên mỗi sự kiện RadioButton ẩn một hiện tại và hiển thị khác. bạn có thể "nhớ" trong biến cục bộ (ví dụ: "currentVisibleControl" tham chiếu hiện có thể nhìn thấy)
lưu ý: nếu bạn muốn. Hiển thị() nhiều hơn một lần. sau đó TableLayoutPanel sẽ kích hoạt ngoại lệ rằng nó đã đầy và không thể thêm bất kỳ mục nào nữa.
P.S. Trong ví dụ của riêng tôi, tôi có TableLayoutPanel trong cửa sổ MDI và ba biểu mẫu thay thế lẫn nhau trên các nút bấm trên chúng vì vậy tôi nghĩ việc sao chép mã nguồn của tôi sẽ làm phức tạp ví dụ "bằng lời nói".
P.P.S. Từ kinh nghiệm của tôi Visual Studio hiện một số điều kỳ lạ trong chế độ thiết kế đôi khi. Tôi đã phải loại bỏ và thêm lại TableLayoutPanel để thiết lập các thuộc tính một cách chính xác và nhận được kết quả cả trong thiết kế và trong thời gian chạy. Vì vậy, nếu giá trị tự động hoặc giá trị tuyệt đối/phần trăm không được mô tả trên màn hình của nhà thiết kế thì đó có thể là vấn đề của nhà thiết kế chứ không phải của bạn. JUST DELETE IT AND RETRY.
cảm ơn, nó có thể ẩn bảng điều khiển chứ không phải ô di động .. vẫn ở đó? Tui bỏ lỡ điều gì vậy? – Bohn
@BDotA, bạn có chắc chắn rằng hàng của bạn được tự động hóa không? – arbiter
cũng trên trong hộp thuộc tính của TableLayoutPanel có một thuộc tính "Hàng", tôi nhấp vào nó, một hộp thoại khác mở ra. các hàng của tôi được liệt kê ở đó. có một tùy chọn nút radio CellType trong đó tôi nghĩ. vì vậy tôi đã nhấp vào từng hàng của tôi và chọn AutoSize cho nó .... đây là những gì tôi đã làm. – Bohn