2013-08-23 37 views
6

Tôi có hai GroupBoxes ở phía bên trái của một trong số TabControls của tôi, gọi cho chúng là GroupBox A (trên cùng bên trái) và GroupBox B (dưới cùng bên trái). Các GroupBoxes không thay đổi kích thước như tôi hy vọng.C# Winforms: GroupBox không thay đổi kích thước

Ví dụ: Khi tôi thay đổi kích thước hình thức chính mà có TabControls với con chuột của tôi, hoặc tối đa hóa nó, hoặc di chuyển nó đến một màn hình với độ phân giải thấp hơn, GroupBox B giữ chiều rộng của nó/chiều cao. Điều này gây ra GroupBox B để vẽ trên GroupBox A, giống như một hiệu ứng 'luôn luôn trên đầu'.

Mong muốn: Muốn cả hai GroupBoxes thay đổi kích thước theo cách khác/tạm thời và phù hợp với khu vực được cung cấp.

Ý tưởng?

+0

Kiểm tra ứng dụng CSS –

+1

Cảm ơn Sourabh, nhưng tôi chưa có ứng dụng này, ứng dụng này là ứng dụng Winform. – scryptKiddy

+0

Ok sau đó đặt thuộc tính dock thành FILL và chắc chắn nó hoạt động –

Trả lời

6

Bảng tableLayoutPanel có thể trợ giúp việc này.

  1. Thêm bảngLayoutPanel và chỉnh kích thước phù hợp với nhu cầu của bạn.
  2. Neo bảng từ đầu, Bottom, Left, và phải
  3. Đặt GroupBoxA vào tế bào phía trên bên trái của bảng
  4. Đặt GroupBoxB vào tế bào dưới bên phải của bảng
  5. Đối với cả hai GroupBox kích thước chúng cho phù hợp và neo chúng vào tất cả 4 mặt.
  6. Bây giờ, chúng sẽ phát triển và thu nhỏ tương ứng với ứng dụng.

Ngoài ra, bạn có thể thêm nhiều điều khiển của mình vào bảng. Nếu bạn cần một điều khiển để mở rộng nhiều hàng hoặc cột, hãy sử dụng thuộc tính RowSpan/ColumnSpan.

+0

Vẫn đang thử nghiệm câu trả lời đó, chưa có may mắn. Bạn có chắc chắn muốn GroupBox A ở ô trên cùng bên trái và GroupBox B ở ô bên phải thấp hơn không? Nó sẽ không được GroupBox A trong tế bào trên bên trái và GroupBox B trong tế bào bên trái thấp hơn? Làm cho tableLayoutPanel với một cột nói cách khác? – scryptKiddy

+0

Tùy thuộc vào bố cục của bạn. Nếu hai ô cung cấp cho bạn những gì bạn muốn, thì bạn có thể sử dụng một cột và sau đó fiddle với neo để có được hiệu ứng bạn muốn. Nếu bạn muốn chắc chắn rằng GroupBoxB không chồng lên phía dưới hoặc bên phải của GroupBoxA thì bạn sẽ cần 2 cột. Nếu bạn chỉ quan tâm đến nó không đi qua phía dưới, thì chỉ cần một cột. – jmstoker

+0

vâng, chỉ hai hộp nhóm trên tabControl ở bên trái. Một trên đầu trang khác. Ở bên phải của chúng là một DataGridView. Họ tất cả thay đổi kích thước tốt ngoại trừ GroupBoxes. Vẫn chơi với neo và như vậy, không may mắn được nêu ra. Tốt nhất tôi có thể nhận được là sau khi đặt hai groupBoxes vào một cột duy nhất tableLayoutPanel, một trên đầu trang khác, neo chúng cả hai vào TBLR, các hộp nhóm chỉ hiển thị một nửa được vẽ và bị cắt bỏ. Rất lạ. Tôi có nên tải lên ảnh chụp màn hình này không? – scryptKiddy

1

Tôi gặp phải sự cố tương tự, tôi đã sử dụng vùng chứa chia cho cả hai GroupBox, đã neo vùng chứa ở trên cùng, dưới cùng, bên trái của biểu mẫu chính của tôi và cả hai GroupBoxes, ở trên cùng, dưới cùng, bên trái và bên phải thùng chứa của họ.

1

Tắt chủ đề từ câu hỏi gốc, nhưng vấn đề của tôi là trường MaximumSize của tôi trong Nhóm Nhóm của tôi chưa được đặt hoặc quá nhỏ nên tôi không thể thay đổi kích thước chiều cao!

1

Đã chọn câu hỏi khá cũ, ai đó vẫn có thể thấy nó hữu ích ... Tôi gặp vấn đề tương tự và tìm giải pháp làm việc -> thay vì thay đổi chiều rộng/chiều cao của GroupBox, thay đổi chiều rộng/chiều cao tối thiểu của nó trong phương pháp thay đổi kích thước của Form

chỉnh sửa: typo cố định

private void Form1_Resize(object sender, EventArgs e) { 
     groupBox1.MinimumSize = new Size(this.Width /2, this.Height); 
    } 
2

Nếu GroupBox của bạn là bên trong một điều khiển như một tab hoặc một cái gì đó, sau đó làm như sau:

trong trường hợp của tôi, tôi đã có một GroupBox bên trong a ta b và tôi đã gọi các phương thức dưới đây theo phương thức InitializeComponent() để buộc Hộp nhóm điều chỉnh kích thước tab.

this.groupBox4.ResumeLayout(false); 
this.groupBox4.PerformLayout(); 
this.tabPage2.ResumeLayout(false); 
this.tabPage2.PerformLayout(); 

Và nếu bạn có nhiều GroupBox, bạn cần đặt neo cho phù hợp.

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