日期:2014-05-18  浏览次数:20792 次

.net中同一种问题两种方法的区别
.net 做Windows开发时,控件的操作可以直接从工具箱拖入,也可以手动添加代码,但是手动添加控件的代码是在form_load事件中添加的,并且在设计器中是看不到控件的,这两种方法有什么区别?速度方面,节约资源方面。在一般的开发中有没有用后一种方法的?

------解决方案--------------------
一样的,没区别。你拖进来的控件vs帮你声明初始化了
------解决方案--------------------
C#中有一个函数InitializeComponent()是专门用来初始化的,在Form中拖入的所有控件都会在InitializeComponent()函数中进行初始化。
但是VS的窗体设计器有些时候会出错,也就是说你 无法打开设计器,打开过程中提示你某一个地方出错而无法进入设计器,此时就只有动态添加控件了。可以肯定的是控件在设计器中看到的属性、事件都可以进行动态加载。
两种方式没有任何本质的区别,就像有些人喜欢吃米饭,有些人喜欢吃面条一样,其目的都是为了吃饱。
------解决方案--------------------
生成动态的control需要用代码。比如数据库返回N个记录,而你需要N个button和N个button事件对应N个记录,那就用代码生成。
------解决方案--------------------
差不多吧,只不过程序执行的位置不一样吧.
一个是在InitializeComponent()中执行
一个是在Page_Load中执行。

在Page_Load 中好像多了一次update()。
------解决方案--------------------
没有两种方法...只有一种...就是3楼说的InitializeComponent方法...

窗体设计器会自动生成一个同名的.designer.cs文件...打开它看看就知道了...

所以手工写.cs文件和手工写.designer.cs文件没有什么两样...唯一区别是.designer.cs文件中的代码窗体设计器会在设计时立即呈现...

明白了这一点...你就可以手工写InitializeComponent方法而.designer.cs文件就可以删掉了...当然不推荐这么做...