C#WinForms面板问题

5 c# winforms

我有一个烦人的问题 - 我想使用带有图像的列表视图作为菜单.假设列表视图包含3个"图像".

  • 图1.)"主要"
  • 图2.)"选项"
  • 图3.)"杂项"

现在,当我单击"Main"图像时,我将显示"Main"面板,同样显示"Options"图像,其中我显示"Options"面板.但这是烦人的部分.我的表格上有3个面板.因此,每当我想编辑一个面板时,我必须调整其他两个面板的大小,以便我可以编辑第一个面板,因为它们都被抛在窗体上.编辑面板真的很烦人.

是否有某种控件相当于wxWidgets wxListBook控件?或者有人知道如何解决这个问题吗?我在问设计时间

谢谢!

Ste*_*bob 5

我假设你在谈论在设计时编辑面板而不是运行时间.只需将所有面板设置为相同尺寸,将它们放在彼此的顶部,当您命名它们时,请确保它们都具有相同的前缀.选择顶部显示的面板,如果它不是您想要的面板,请使用"属性"窗口顶部的下拉列表选择所需的面板,然后右键单击突出显示的Panel夹点(移动和调整大小) thingys)并选择'BringToFront'.


Fra*_* B. 2

您可以只显示当前项目面板并隐藏其他面板。在表单上,​​添加一个空面板,它是列表视图项面板的容器。

private Panel container;

private void listView1_SelectedIndexChanged(object sender, EventArgs e)
{
    //get the item panel associated with the current selection.
    Panel itemPanel = GetItemPanelFromSelection(); 

    container.Controls.Clear();
    container.Controls.Add(itemPanel);
    itemPanel.Dock = DockStyle.Fill;
}
Run Code Online (Sandbox Code Playgroud)

就我个人而言,我会为您想要的每种类型的面板创建一个用户控件。优点是您可以轻松编辑它们。之后,您可以使用上面相同的代码。