2012-06-03 29 views
36

Tôi đang cố gắng tạo một ứng dụng màn hình chính nhiều lớp. Tôi có một số nút ở trên cùng liên kết đến phần chính của ứng dụng (ví dụ: cửa sổ quản lý cho từng thực thể trong Mô hình)Làm thế nào để làm cho WinForms UserControl lấp đầy kích thước của vùng chứa của nó

Nhấp vào bất kỳ nút nào trong số này hiển thị UserControl được liên kết trong Bảng điều khiển. Bảng điều khiển giữ UserControls mà lần lượt giữ giao diện người dùng.

WinForms UserControl không có thuộc tính Anchor hoặc Dock.

Tôi đã cố gắng sở hữu thiết của UserControl

AutoSize=True 

private void ManageUsersControl_Load(object sender, EventArgs e) 
{ 
     this.Width = this.Parent.Width; 
     this.Width = this.Parent.Height; 
} 

Nhưng những đã không làm việc.
Lưu ý: Tôi tải kiểm soát này tự động trong thời gian chạy

+4

'UserControl' * does * có thuộc tính' Dock' - nó thừa kế thuộc tính đó từ 'Điều khiển'. Xem phần Thuộc tính của http://msdn.microsoft.com/en-us/library/system.windows.forms.usercontrol.aspx – MvanGeest

+0

tuyên bố ở trên "Bảng điều khiển người dùng winforms không có thuộc tính" Neo "hoặc" Dock " "đã sai. Tôi đã tìm kiếm "Dock" trong khi trên UserControl. Nó sẽ chỉ xuất hiện cho điều khiển (trẻ em) được thêm vào UserControl. – codingbiz

+0

@MvanGeest có nó có ý nghĩa không, nhưng tại sao nó không có trong lưới thuộc tính thiết kế? – Steve

Trả lời

68

Cố gắng thiết lập các Dock tài sản để Fill:

private void ManageUsersControl_Load(object sender, EventArgs e) 
{ 
     this.Dock = DockStyle.Fill; 
} 

Tôi cũng sẽ thiết lập AutoSize để mặc định, tôi tin là False. Xem cách hoạt động ...

+3

Từ OP: 'Trình điều khiển người dùng winforms không có thuộc tính" Neo "hoặc" Dock ".' –

+0

@PaulSasik: OP có thể bị nhầm lẫn; nếu không, nó sẽ không phải là 'UserControl'. – Douglas

+2

OK điều này thực sự làm tôi ngạc nhiên. Bạn có biết tại sao thuộc tính này không nằm trong lưới thuộc tính của nhà thiết kế UserControl không? Nhân tiện, nó hoạt động hoàn hảo trong thời gian chạy. – Steve

-1
UserControl1 myusercontrol = new UserControl1(); 
      myusercontrol.Dock = DockStyle.Fill;//Dock Prope. Fill user Control Contrainer 
      TabPage myTabPage = new TabPage();//New Tab Create 
      myTabPage.Text = "Wel-Come Page";//Tab Header Txt 
      myTabPage.Controls.Add(myusercontrol); 
      tabControl1.TabPages.Add(myTabPage); 
-3

Trong điều khiển người dùng thay đổi kích thước.

private void MyTextBox_Resize(object sender, EventArgs e) 
     { 
      this.Width = textBox1.Width; 
      this.Height = textBox1.Height; 
     } 
Các vấn đề liên quan