A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黄威 黑马帝   /  2011-11-1 17:43  /  3054 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

winForm窗体传值有几种方法?分别怎么实现?窗体开发的时候采用什么框架的效率最高?三成架构如何?
请回答,谢谢!

10 个回复

倒序浏览
举个例子 如果form2是注册窗体 form1是登录窗体 要将form2注册的用户名传到form1的窗体中 可以这样: form1中定义一个属性Username ,和 函数SetName(string name),此函数作用是给username赋值 form2中定义一i个公共的form1类变量 用来接受form1的对象 ,然后就可以实现跨窗口调用了。关于效率问题:采用三层架构其实效率不高,加大了代码的量,但好处是结构清晰,能进行分工合作,利于大型项目的开发。一般小的项目 简单模式执行效率最高。其实效率主要还看你的逻辑与算法。如过你的代码逻辑混乱 ,算法效率低,采用什么样的架构效率也高不了。
回复 使用道具 举报
      哦,谢谢。那个窗体传值我也是用属性指段完成的,但是还有一个就是方法重构,页蛮好用的,。我前期开发都是三层架构,但是不知道为什么用,效率如何。谢谢你的分析。 逻辑和算法是经验和写代码风格决定得。
回复 使用道具 举报
看你需要什么样子的,大项目三层架构+mysql,一般的小项目我就用三层架构+access.至今除了比赛的时候用过工厂模式.其他普遍的我就用 后者三层架构+access
  1.    private void btnDLHG_Click(object sender, EventArgs e)
  2.         {
  3.             if (dgvZMS.SelectedRows != null)
  4.             {
  5.                 foreach (DataGridViewRow row in dgvZMS.SelectedRows)
  6.                 {
  7.                     if (row.Cells[0].Value != null)
  8.                     {
  9.                         dlhgqForm dlForm = new dlhgqForm();
  10.                         dlForm.txtCPXH.Text = row.Cells[0].Value.ToString().Trim();
  11.                         dlForm.txtCCXH.Text = row.Cells[1].Value.ToString().Trim();
  12.                         dlForm.ShowDialog();
  13.                     }
  14.                 }
  15.             }
  16.             else
  17.             {
  18.                 MessageBox.Show("请至少选中一行!");
  19.             }
  20.         }
复制代码
这是我上一个做的项目  把当前窗体DataGridView中的选中行第一列和选中行第二列传给要打开窗体控件赋值.
  1. dlhgqForm dlForm = new dlhgqForm();
  2.                         dlForm.txtCPXH.Text = row.Cells[0].Value.ToString().Trim();
  3.                         dlForm.txtCCXH.Text = row.Cells[1].Value.ToString().Trim();
  4.                         dlForm.ShowDialog();
复制代码
这是一种 其他的 我不说  楼主 自己尝试着写下都是千篇一律的.
回复 使用道具 举报
补充下啊 现在也有用模块开发的.
回复 使用道具 举报
你可一重新编写个类,把需要的东西封装在里面,使全部都可以访问
回复 使用道具 举报
郑文 黑马帝 2011-11-2 13:57:27
7#
其实三层架构的缺点可以忽略,好处我已经说了。其实我以前写程序都是用UI层直接访问数据库 ,后来我想加个功能,因为代码写的太乱,没法加。然后我学习了JAVAWEB中常用的MVC开发模式,其实.net也一样用。无论底层数据 还是业务逻辑都很清晰。即使加10个功能也可以。
回复 使用道具 举报
郑文 黑马帝 2011-11-2 13:57:55
8#
其实三层架构的缺点可以忽略,好处我已经说了。其实我以前写程序都是用UI层直接访问数据库 ,后来我想加个功能,因为代码写的太乱,没法加。然后我学习了JAVAWEB中常用的MVC开发模式,其实.net也一样用。无论底层数据 还是业务逻辑都很清晰。即使加10个功能也可以。
回复 使用道具 举报
沙铁健 黑马帝 2011-11-2 14:02:35
9#
郑文 发表于 2011-11-2 13:57
其实三层架构的缺点可以忽略,好处我已经说了。其实我以前写程序都是用UI层直接访问数据库 ,后来我想加个 ...

本人不才..... 现在 还没研究 三层架构的缺点..........  不过我就知道三层架构 扩展性好 需要什么功能一安装就可以.
回复 使用道具 举报
郑文 黑马帝 2011-11-2 14:46:00
10#
不用研究  学的时候就知道了
回复 使用道具 举报
陈涛 黑马帝 2011-11-4 10:30:07
11#
我知道有3种,1是通过构造函数,2是通过静态变量,3是通过共有属性 不过我个人觉得第2个方法比较好.三层吧简单的说就是DAO,BLL,Model,UI.这是三层的基本结构. 数据访问层,业务逻辑层,封装,表示层.到底是项目中取之那个, 我觉得是应该根据需求来的吧. 三层是最基本也是最简单的.
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马