2009-03-14 72 views
34

Tôi muốn ẩn panel2 trên một vùng chứa phân chia và có bảng điều khiển1 sử dụng không gian. Tôi đã hy vọng thiết lập Panel2Collapsed sẽ làm các trick, nhưng không có may mắn. Ý tưởng?Làm cách nào để ẩn bảng điều khiển trên SplitContainer?

+1

Điều gì thực sự xảy ra khi bạn đặt Panel2Collapsed thành true? Panel2 có hiển thị không? –

Trả lời

61

này làm việc cho tôi vào một tình huống tương tự:

splitContainer1.Panel2Collapsed = true; 
splitContainer1.Panel2.Hide(); 

tôi muốn bảng thứ hai để không được hiển thị ở tất cả trong một số trường hợp, vì vậy tôi thực hiện nó theo cách này.

+0

Nếu bạn không đặt SplitterDistance và gọi Hide(), phần nào của Panel2 hiển thị? –

+1

Nếu tôi nhớ chính xác, nếu bạn không thiết lập SplitterDistance, thì ở đầu xa của Panel1 con trỏ chuột sẽ thay đổi, làm cho nó hiển nhiên rằng có một bảng điều khiển khác ở đó. –

+0

nhưng điều gì sẽ xảy ra khi người dùng đổi kích thước biểu mẫu – CrashCodes

-3

Thử đặt bảng điều khiển2.Visible = false.

2

Đặt Panel2Collapsed thuộc tính vào true trong trình thiết kế biểu mẫu và lập trình cả hai hoạt động như bạn muốn chúng (tức là Panel1 chiếm toàn bộ không gian) ... do đó phải có điều gì đó khác đang diễn ra.

1
  this.splitContainerControl1.Panel2.Hide(); 
      this.splitContainerControl1.Panel2.Height = 0; 
      this.splitContainerControl1.IsSplitterFixed = true; 

Điều này phù hợp với tôi.

+0

ít nhất với winforms nó không hoạt động! – boboes

0

splitContainer1.PanelVisibility = SplitPanelVisibility.Panel1

+0

Không có tài sản nào tồn tại. –

+0

Nó hoạt động cho Devexpress SplitContainerControl. Có lẽ đây không phải là nơi thích hợp nhưng nó đã làm việc cho tôi, cảm ơn. –

0

Với Visual Studio 2017 nó là một mẹo nhỏ hơn. Đây là những gì tôi đã làm việc cho tôi. MyControl nằm trong bảng điều khiển1.

'vb.net: 

MySplitContainer.Panel2Collapsed = True 
MySplitContainer.Panel2.Hide() 
MySplitContainer.SplitterDistance = MySplitContainer.Height 
MySplitContainer.Panel1.Anchor = AnchorStyles.Bottom 
MyControl.Height = MySplitContainer.Height 

'for C# just add a semi-colon onto the end of each line and it should work. 
Các vấn đề liên quan