在winform中用splitContainer 实现左右分栏,左边是用TreeView做菜单,右边是要用怎么弄才可以实现点击左边的菜单实现右边的不同功能页??

Zoe_77 2016-06-04 11:37:41
...全文
450 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
-小蕾- 2016-06-08
  • 打赏
  • 举报
回复
引用 4 楼 zyl_leilei 的回复:

//左侧XX菜单
        private void btn_IrmCheck_Click(object sender, EventArgs e)
        {
            try
            {
                IRCapture.UserControl1 frm = new IRCapture.UserControl1();
                SetMdiForm("aaa", "页面一", frm);
            }
            catch (Exception ex)
            {
                MessageBoxEx.Show(ex.Message);
            }
        }

        //打开窗体
        public void SetMdiForm(string name, string caption, Control frm)
        {
            bool isOpened = false;//设置打开状态

            //循环判断如果选项卡已存在,则选中
            foreach (TabItem tab in tabControlMain.Tabs)
            {
                if (tab.Text == caption)
                {
                    tabControlMain.SelectedTab = tab;
                    isOpened = true;
                    break;
                }
            }

            if (!isOpened)//如果不存在
            {
                //将窗口在新增选项卡中显示
                TabItem tab = tabControlMain.CreateTab(caption);
                tab.Name = name;
                tab.Text = caption;

                frm.Dock = DockStyle.Fill;
                tab.AttachedControl.Controls.Add(frm);
                tabControlMain.SelectedTab = tab;
            }
        }
这个是实现右侧多功能页的,可来回切换。 左侧点击事件的代码你可以放在树形菜单的点击事件当中,右侧放选项卡控件来实现多菜单页。
crystal_lz 2016-06-06
  • 打赏
  • 举报
回复


自己参考吧
-小蕾- 2016-06-06
  • 打赏
  • 举报
回复

//左侧XX菜单
        private void btn_IrmCheck_Click(object sender, EventArgs e)
        {
            try
            {
                IRCapture.UserControl1 frm = new IRCapture.UserControl1();
                SetMdiForm("aaa", "页面一", frm);
            }
            catch (Exception ex)
            {
                MessageBoxEx.Show(ex.Message);
            }
        }

        //打开窗体
        public void SetMdiForm(string name, string caption, Control frm)
        {
            bool isOpened = false;//设置打开状态

            //循环判断如果选项卡已存在,则选中
            foreach (TabItem tab in tabControlMain.Tabs)
            {
                if (tab.Text == caption)
                {
                    tabControlMain.SelectedTab = tab;
                    isOpened = true;
                    break;
                }
            }

            if (!isOpened)//如果不存在
            {
                //将窗口在新增选项卡中显示
                TabItem tab = tabControlMain.CreateTab(caption);
                tab.Name = name;
                tab.Text = caption;

                frm.Dock = DockStyle.Fill;
                tab.AttachedControl.Controls.Add(frm);
                tabControlMain.SelectedTab = tab;
            }
        }
  • 打赏
  • 举报
回复
“专业开发人员”平常设计的是用户控件、自定义控件,这些东西。因为他遇到的许多问题都是比你这个还复杂的设计问题,所以最基本的“基线”就跟业余开发人员不同。 但是在这个论坛上,就事论事,我们回答许多看上去只是“Form”的问题。
  • 打赏
  • 举报
回复
组合各种局部界面的顶层控件,是“用户控件”而不是“窗体”。 你要将各种应用设计为用户控件,然后编译测试之后)拖入需要的任何窗体、容器控件中。如果需要动态加载也可以,例如写
this.Panel.Controls.Clear();
var c = new 缴费表单();
this.Panel.Controls.Add(c);
c.初始化一些属性(....);
这里就清除了之前的内容,增加了所需要的类型的界面对象。 因此,用户控件是 winform 设计界面的核心。而 Form 其实不是,直接把几个预先设计好的用户控件拖入 Form 就行了,就好像胶水可以变魔术一样,你的核心应该先用用户控件设计好。 初学者可能只知道在 Form 中设计界面。
小程序员 2016-06-05
  • 打赏
  • 举报
回复
右边放一个pannel,左边点击事件弹出一个新窗口,窗口设置为无边框类型的; 大概这样: form2 frm=new form2(); frm.parent=this; 。。。。。 pannel1.control。add(frm); frm。show(); 大概这样,你搜下在pannel显示窗口,有详细的代码

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧