2009-08-29 39 views
6

tôi muốn mở nhiều phiên bản của một biểu mẫu và hiển thị nó dưới dạng khác hoặc paenel của biểu mẫu khác. làm thế nào để làm điều đóC# Hình thức Winform trong mẫu

Trả lời

18

Nếu bạn không sử dụng MDI, bạn vẫn có thể thêm biểu mẫu vào biểu mẫu khác hoặc vào bảng điều khiển trên biểu mẫu.

public Form1() 
{ 
    InitializeComponent(); 

    Form2 embeddedForm = new Form2(); 
    embeddedForm.TopLevel = false; 
    Controls.Add(embeddedForm); 
    embeddedForm.Show(); 
} 

Bạn sẽ cần phải thiết lập các FormBorderStyle-None, trừ khi bạn muốn có một hình thức di chuyển thực tế bên trong mẫu của bạn.

Nếu bạn muốn thực hiện việc này để tạo "mẫu" có thể sử dụng lại để sử dụng trong nhiều biểu mẫu, bạn nên cân nhắc tạo điều khiển người dùng thay thế. Không được nhầm lẫn với một điều khiển tùy chỉnh, được thiết kế cho khi bạn cần làm bản vẽ của riêng bạn thay vì sử dụng bộ sưu tập các điều khiển Windows tiêu chuẩn.

Tôi không hoàn toàn chắc chắn ý định của bạn là gì, nhưng MDI (như đã đề cập trong một trong các câu trả lời khác) có thể thực sự là những gì bạn đang tìm kiếm.

+0

thì khác biệt gì nếu tôi sử dụng phương pháp hoặc câu trả lời theo phương pháp sau – Moon

+0

nếu tôi muốn đặt biểu mẫu này trong một số bảng điều khiển của MDI – Moon

+0

Tôi đã làm điều này cả ngày ở Delphi vì chúng tôi không có quyền kiểm soát người dùng. Tôi đang sử dụng điều khiển người dùng bây giờ ngày trong C# vì nó có vẻ là tương đương về cơ bản. Sử dụng phương pháp này, cả biểu mẫu chính và sự kiện Form_Load được nhúng có kích hoạt không? – Steve

1
Form1 fChild = new Form1(); 
fChild.MdiParent = this; 
fChild.Show(); 

IsMDIContainer của phụ huynh phải được đặt thành True.

Để biết hướng dẫn đầy đủ, bạn có thể tham khảo: Introduction to MDI Forms with C# @ CodeProject.

+0

nếu tôi muốn đặt biểu mẫu này trong một số bảng điều khiển của phụ huynh MDI – Moon

4

Bạn nên:

1) Chọn cho MDI, có nghĩa là chấp nhận phong cách MDI hoàn chỉnh cho giao diện của bạn

hoặc

2) Không hình thức nhúng ở tất cả, nó tốt hơn (và dễ dàng hơn) để sử dụng UserControls. Hãy thử chúng trước khi bạn thực hiện một sự lựa chọn. Nếu bạn sử dụng Biểu mẫu, hãy đảm bảo phím tắt v.v. tất cả đều hoạt động như bạn muốn.

Giới thiệu ngắn gọn: Bạn thiết kế một UserControl như Biểu mẫu rồi đặt nó trên Biểu mẫu giống như bất kỳ Kiểm soát nào khác.

+1

UserControls là một phương pháp tuyệt vời để khuyến khích sử dụng lại mã khi MDI hoặc là quá mức cần thiết hoặc không phải là thiết kế có thể chấp nhận cho Biểu mẫu. –

0

Tôi đã xem qua chuỗi cũ hơn này tìm kiếm nội dung tương tự. Trong trường hợp có ai đó đang tìm kiếm - tôi đã sử dụng Thêm mục mới> Biểu mẫu Windows> Biểu mẫu kế thừa. Nó cho phép bạn chọn một biểu mẫu để nhúng làm điểm bắt đầu cho một biểu mẫu khác. Đây là trong VS 2015 Community Edition.

+0

** Làm rõ **: đây không phải là * nhúng * biểu mẫu, đó là ** phân lớp ** biểu mẫu. Có thể hữu ích cho các tình huống đơn giản. Cụ thể, bạn có thể sử dụng ** docking ** để đính kèm nhiều điều khiển hơn vào bất kỳ/tất cả 4 mặt của biểu mẫu gốc - NẾU nó chưa sử dụng docking.Nếu không, tôi nghĩ rằng tất cả các bạn có thể làm là để mở rộng chiều rộng và chiều cao, và bắt đầu thêm điều khiển ở bên phải và dưới cùng của điều khiển của biểu mẫu gốc. Vấn đề là nếu các hình thức cha mẹ thay đổi, như vậy mà cần thiết chiều rộng và chiều cao thay đổi, nó có thể là một nỗi đau để di chuyển tất cả mọi thứ trong hình thức phân lớp của bạn. – ToolmakerSteve

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