none
请问附图效果是如何实现的? RRS feed

  • 问题

  • 下图是VS选项中的一个截图。请问:
    点击左边TreeView中不同的节点右边出现不同的控件内容,

    请问右边是如何实现的不同画面切换的?是放了不同的panel控件、通过修改它的Visible属性来实现的吗?谢谢!

    2017年9月12日 13:28

答案


  • Hi leon1526,

    你可以尝试使用panel1来加载不同form窗体的内容。

    this.panel1.Controls.Clear();//
    Form1 form = new Form1{ TopLevel = false, FormBorderStyle = FormBorderStyle.None };
    this.panel1.Controls.Add(form );//把form里的内容添到panel中
    form.Show();//


    你也可以尝试用MdiParent属性来控制form嵌入form吧。或者用tabcontrol。

    上面的建议是基于Winform的基础上。其他技术或许稍微有点差别。

    Note:请记住通过标记有用的帖子作为答案来关闭您的主题,然后如果您有新问题,则启动新的主题。 请不要在同一个主题中提出几个问题。


    Best Regards,

    Yohann Lu



    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    • 已标记为答案 leon1526 2017年9月13日 13:34
    2017年9月13日 3:05
    版主

全部回复

  • 右边可以用多个panel来实现,也可以用tab control实现(隐藏tab header)


    专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    2017年9月13日 0:33
  • 多谢你的回复!
    2017年9月13日 2:41

  • Hi leon1526,

    你可以尝试使用panel1来加载不同form窗体的内容。

    this.panel1.Controls.Clear();//
    Form1 form = new Form1{ TopLevel = false, FormBorderStyle = FormBorderStyle.None };
    this.panel1.Controls.Add(form );//把form里的内容添到panel中
    form.Show();//


    你也可以尝试用MdiParent属性来控制form嵌入form吧。或者用tabcontrol。

    上面的建议是基于Winform的基础上。其他技术或许稍微有点差别。

    Note:请记住通过标记有用的帖子作为答案来关闭您的主题,然后如果您有新问题,则启动新的主题。 请不要在同一个主题中提出几个问题。


    Best Regards,

    Yohann Lu



    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    • 已标记为答案 leon1526 2017年9月13日 13:34
    2017年9月13日 3:05
    版主
  • 写法的概念就是如下:

    Tree.MouseClick += Tree_NodeMouseClick;
    private void Tree_NodeMouseClick(object sender, System.Windows.Forms.TreeNodeMouseClickEventArgs e)
    {
    
    	TreeNode selNode = (TreeNode)Tree.GetNodeAt(Tree.PointToClient(Cursor.Position));
    
    	if (selNode != null)
    	{
    		if (selNode.IsExpanded)
    		{
    			//下面就是你要控制的元件
    			Label1.Visible = True;
    		} else {
    			//下面就是你要控制的元件
    			Label2.Visible = True;
    		}
    
    	}
    }





    2017年9月13日 9:27
  • 谢谢Yohann,你太厉害了,
    2017年9月13日 13:36