zoukankan      html  css  js  c++  java
  • panel 与treeview控件的结合实现tablecontrol功能

    首先,我十分高兴能成为博客园的一员。有朋自远方来,不亦乐乎@广大编程爱好者们!!!

    最近在软件开发中,遇到了这样一个问题:panel 与treeview控件的结合实现tablecontrol功能,一直不能实现。经过咨询,以及查询资料,终于有了新认识,和大家分享一下,莫见笑。

    在这里重点涉及到了控件嵌套(父子关系)的问题,我们把panel们全部摞在一起,这里也就只显示了最上一层的panel内容,我的想法是通过激活treeview控件的节点来实现panel的交换显示。在这里特别注意的是:这些panel彼此之间并非独立的,而是存在嵌套(父子关系的)。我们解决的就是把这些panel控件设置为独立关系。这样就可以很容易的实现各个panel的交换显示了。

    第一部分:改变各个panel的嵌套关系为独立关系

    我们在XXXX.desiger.cs(窗口设计编辑器)中,改变他们的关系:

     // main_panel
    this.main_panel.Controls.Add(this.panel1);
                this.main_panel.Controls.Add(this.panel2)

    在这里就实现了panel1,panel2,是main_panel的子窗体,位于其上面了。

    第二部分:利用treeview的节点选择来实现panel的显示、隐藏(以下是一个小例子)

     在XXXX.AfterSelect(object sender, TreeViewEventArgs e)

        {

            showPanel(int level, string name);

        }

    private void showPanel(int level, string name)
            {
               foreach (Control c in panel_main.Controls)
                    {
                        c.Visible = false;
                    }

              switch (level)
                    {
                        case 0:
                            panel_MEquipGeneralAtt.Visible = true;
                            break;
                        case 1:
                            panel_MEquipGeneralAtt.Visible = true;
                            break;
                        case 2:
                            panel_RingGeneral.Visible = true;
                            break;
                      }

              }

    最后,收获最大的地方是:学会手动去改动XXXX.desiger.cs(窗口设计编辑器)中编码内容.....

  • 相关阅读:
    2030年的10大热门职业
    10种散发着爱情信号的肢体语言
    猎头不来找你的5种原因
    15个不得不去的“秘密”景点
    保持微笑的五大好处
    vscode 格式化突然失效
    openlayers之全屏控件的使用
    openlayers之点,线,面(以城市,河流,省份为例,分别对应点线面)
    openlayers 添加标记点击弹窗 定位图标闪烁
    搜索框focus 搜索面板显示 点击别处消失 从浏览器别的页面回来消失
  • 原文地址:https://www.cnblogs.com/liuxiaowei0543/p/3096844.html
Copyright © 2011-2022 走看看