• 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(窗口设计编辑器)中编码内容.....

  • 相关阅读:
    解决无法安装Microsoft .Net Framework 3.5
    day11-15,装饰器
    Xmanager Power Suit 6.0.0009 最新版注册激活
    eth
    MySql 8.0 版本使用navicat连不上解决
    day11
    Mybatis使用规则
    nginx的基本配置
    Mybatis分页插件PageHelper使用
    dubbo的使用
  • 原文地址:https://www.cnblogs.com/liuxiaowei0543/p/3096844.html
Copyright © 2020-2023  润新知