2014-03-07 58 views

回答

1

确保您已放置在同一个容器或表单中的所有面板控制。那么你可以使用Visible属性来显示和隐藏面板。将使用BringFrontSendToBack函数将面板置于顶部或将其发回。如果您已将任何面板放置在另一个面板中,则在隐藏父面板时该面板将消失。所以,确保所有面板的父级控制必须相同。要确定家长控制,只需选择该面板并按下退出键选择他们的家长。

private void LoadPanels() 
{ 
    panel1.Location = new Point(10,10); 
    panel2.Location = new Point(10,10); 
    panel3.Location = new Point(10,10); 
    panel4.Location = new Point(10,10); 
    panel5.Location = new Point(10,10); 

    VisiblePanel("panel1"); 
} 

private void VisiblePanel(string panelName) 
{ 
    string[] panels = new string[]{"panel1","panel2","panel3","panel4","panel5"}; 
    for (int i=0;i<panels.Length;i++) 
     this.Controls[panels[i]].Visible = (panels[i] == panelName); 

    this.Controls[panelName].BringToFront(); //Not required you can remove this line. 
} 
+0

嘿,感谢名单我得到了解决。 – snehal

+0

@snehal你可以使用上面的例子来显示和隐藏你的面板。 – 2014-03-07 10:18:12

1

以下是你可能要考虑一个稍微不同的方法......

你希望能够以编程方式选择在运行时的矩形区域中的内容,各种控件来显示中进行选择?如果是这样,您可以使用自定义TabControl其隐藏标签(而不是页面)。

然后,您可以选择哪些页面是由在运行时编程方式改变其SelectedIndex属性中显示。

做它像这意味着你的表格编辑器会显示正常的标签控件,它可以让你更轻松地添加内容到每个页面 - 但在运行时的选项卡将从用户隐藏;他们只会看到当前所选页面的内容。

Hans Passant's answer here如何创建这样的自定义选项卡控制。

(但是,你也可能要重写的onkeydown自定义选项卡控制,以忽略Ctrl-Tab组合。)

相关问题