用户控件问题

os超级菜鸟 2019-02-11 10:29:15
各位大神好,先拜个年,祝大家在新的一年里事业顺利,财源广进!

想问个C#做界面的问题,有两个方案:
一个是只放tabcontrol,添加选项卡当作不同的页面;缺点不容易在选项卡上放图标,好处是编程的时候简单,所有的控件在同一个页面下,用的时候直接This就可以了。
二是在主界面放一个toolstrip,一个panel,然后添加多个用户控件作为界面,在用户控件上进行布局,通过toolstrip上的按钮对panel进行操作,显示不同的用户控件,也就相当于切换页面了;好处是美观,每个页面上东西多了也不容易卡顿;

我的问题是,用方案二做的话,每个用户控件上的按钮拉、textbox了、通讯数据拉之类的,是直接在用户控件上编程吗?那各个用户控件(页面)之间相互调用对方的数据,用增加无数个托管吗?



第一次发帖,分数不多,请见谅
...全文
651 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
我帅你随意 2019-02-15
  • 打赏
  • 举报
回复
不太懂主要来学习一下大神们的思路
sxty0220 2019-02-13
  • 打赏
  • 举报
回复
直接在对应的控件事件中写,对于第一种方案,如果想修改C#TabControl标签背景色/C#TabControl美化,可以参考https://jingyan.baidu.com/article/8ebacdf0caf35649f75cd562.html这里。
os超级菜鸟 2019-02-13
  • 打赏
  • 举报
回复
主要纠结的是,很多东西不知道,刚看了几章《C#入门经典》,现有个项目需要做,想完成项目,只能到处找例子来看,来这里找大神问问,这样会快一点。

说的太专业,看不懂。
想要的实际的例子或者函数(方法),来解决某个具体问题
  • 打赏
  • 举报
回复
引用 3 楼 os超级菜鸟 的回复:
主要是想学习一下,从开头就有个好的框架
没有什么一成不变的“死教条框架”,不同设计有不同的理念。如果你不掌握不同理念,而是纠结代码,那根本无法真正理解框架。
  • 打赏
  • 举报
回复
按照第二种设计方案,那么“各个用户控件(页面)之间相互调用对方的数据”这本来就是一个“知其然不知其所以然”的说法,用户控件之间并没有直接的依赖关系,而是通过宿主编码来发生关系的。复杂的职责被有序地分离了,简化了,抽象了(例如用户控件可以龟腚相同的接口,提供给宿主来设计实现统一UI功能,例如导航栏标题状态显示、前进后退撤回操作等等。
os超级菜鸟 2019-02-11
  • 打赏
  • 举报
回复
引用 2 楼 desperaso 的回复:
参考修改着用吧
https://www.cnblogs.com/qiaoke/p/8507183.html


感谢大神,我已经在下载中...,学习一下别人的架构和思路。
os超级菜鸟 2019-02-11
  • 打赏
  • 举报
回复
引用 1 楼 shoppo0505 的回复:
如果你所指的"页面"是没有关联的,那么建议使用tabcontrol来管理。
在同一个页面中,开发/维护起来比较麻烦。


主要是想学习一下,从开头就有个好的框架
desperaso 2019-02-11
  • 打赏
  • 举报
回复
参考修改着用吧
https://www.cnblogs.com/qiaoke/p/8507183.html
shoppo0505 2019-02-11
  • 打赏
  • 举报
回复
如果你所指的"页面"是没有关联的,那么建议使用tabcontrol来管理。
在同一个页面中,开发/维护起来比较麻烦。
  • 打赏
  • 举报
回复
我给你打个比方,假设你使用 DataGrid 来编辑数据集合,然后使用“甘特图”控件来展示计划时间,那么这两个控件怎么“相互调用对方的数据”?怎么能够让用户操作数据表格时改变甘特图、拖动(点击)某任务的执行时间时改变数据表?它们之间根本没有直接的关系,只有间接的关系。这个间接关系就如“胶水”一样,是宿主地把不同的控件粘接在一起。了解“间接调用关系而不是直接调用关系”,这是分解和设计控件的基本概念,它是必然的选择而不是什么“增加无数个托管”。

110,567

社区成员

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

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

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