C#中有什么方法可以动态加载panel??

sky_1989 2008-07-05 10:19:02
我设计了一个界面,左面一个Panel为leftPanle,我在leftPanel上放了一个TreeView控件,右面一个Panel为rightPanel,我的想发是当程序运行时,我可以点击,左面的树,而右面的panel上动态的显示树节点所对应的项目(而不是事先把要显示的项目放好!)。比如点击基本信息,在右面出现显示基本信息的GRID对象。
本人初学C#,哪位仁兄能给个实例,小弟感激不尽
顺便问一下有没有那种专门加载panel的容器??

...全文
359 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
左丘苍松 2008-09-02
  • 打赏
  • 举报
回复
正好可以参考一下 感谢LS的几位高人
请叫我低调 2008-07-11
  • 打赏
  • 举报
回复
被人家说光了 没什么可说的拉 大多解决方案 也就是这样
我姓区不姓区 2008-07-08
  • 打赏
  • 举报
回复
用SpliterPanel,左边放TreeView,右边放DataGridView
slin60 2008-07-08
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 csShooter 的回复:]
C# code
DataGridView view = new DataGridView();
// view 初始化
....
rightPanel.Controls.Add(view);
[/Quote]

如果右边的panel需要包括很多各种不同类型的控件,而且布局提前设计好了的话,我建议你把右边的所有控件封装在一个自定义控件中,然后按照上边的方法来做
marvelstack 2008-07-08
  • 打赏
  • 举报
回复
很典型的winform的问题,

实现类似功能的几种方式,供参考
----------------------------------
1.使用TabControl
右边放置TabControl。使用不同的TabPage显示对应的数据。可以调整界面不让显示TabPage突出来的选项卡头。
2.使用Control进行Z轴排列
使用Control.BringToFront 方法来在Z轴方向上进行显示调整。也就是说右边是好多控件件比如(Panel)按Z轴进行重叠,根据左边进行显示调整。
如果想使用窗体,可以把窗体添加到容器中,以下是实例代码,
//WinForm嵌入panel
Form2 form = new Form2();
form.FormBorderStyle = FormBorderStyle.None;
form.TopLevel = false;
this.panel1.Controls.Add(form);
form.Show();
3.使用第三方组件
一般的第三方的WindowsForms组件都提供了DockPanel的组件,功能方式就像VS IDE中的开发界面,可以进行灵活拖动,停靠以及独立窗口显示。
推荐一款用的比较多的开源组件,
dock panel suite,以下是网站地址,提供完整示例和源代码,
http://sourceforge.net/projects/dockpanelsuite/
实现自定义视图的例子
http://www.codeproject.com/KB/vb/DockPanelSkin.aspx
===============================================
以上实现对右边的对象进行惰性加载性能会更好。
csShooter 2008-07-05
  • 打赏
  • 举报
回复

DataGridView view = new DataGridView();
// view 初始化
....
rightPanel.Controls.Add(view);
pp_shy 2008-07-05
  • 打赏
  • 举报
回复
另外Panel本身就是容器,在Panel中可以继续添加和嵌套新的Panel
pp_shy 2008-07-05
  • 打赏
  • 举报
回复
你可以在右面边的rightPanel中加载和替换UserControl面板,这样你就可以不考虑加载panel的容器了。
JamesZou89 2008-07-05
  • 打赏
  • 举报
回复
你可以在右边的面版上放置一个ListView控件,然后去获得左边TreeView上选择的接点的相关信息,然后把信息显示在右边的ListView控件上!
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 csShooter 的回复:]
C# code
DataGridView view = new DataGridView();
// view 初始化
....
rightPanel.Controls.Add(view);
[/Quote]
足球中国 2008-07-05
  • 打赏
  • 举报
回复
new 一个。然后再在容器的。CONTROLS属性里加。

110,593

社区成员

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

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

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