zoukankan      html  css  js  c++  java
  • Winform 学习初级 从WebForm到WinForm

        一直在做c# 的Web程序,近期由于要用winfrom做个小项目,觉得无从下手,特把痛苦经历记载一下:

      先把窗体结构 展示一下:

      

       WEB一个项目多个页面,页面跳转是通过链接来进行页面跳转的,而winfrom没有url,只能通过:

    Code

    被调用的Login 属性和提交代码:

    Code

       通过窗体的ShowDialog()来展开新窗体。当然也可用用lg.Show(),不过ShowDialog的好处是可用返回结果。

      if (lg.DialogResult == DialogResult.OK) 和login的this.DialogResult = DialogResult.OK; 这2句就可用判断登陆窗口是否通过验证了。

     lg.MsgStr = "主窗口弹出信息"; 和 string userName = lg.MsgStr; 通过login的MsgStr 属性 来实现父窗口给子窗口传值,父窗口获得子窗口的返回值。

     你可能会问,winform没有起始页,它又怎么进mainform 按我们的步骤走了,其实一切都在Program.cs里的Main()函数里,这是程序的入口:

    Code

     Application.Run(new MainForm()); 这句就是弹出MainForm窗口 

     进入主窗体,我的信息主体采用DataGridView,这个控件比较诡异,只接受DataTable的数据集,你给它DataSet它还用不了,而且还没分页功能,也没修改删除那种很直接的事件,也没模板,感觉和GridView没的比,此控件还在研究中,跳过!

     数据一步步来,为了找点成就感,也为了避开写修改要获取,行,关键字问题,先做个新增窗体,UserAdd:

      把控件拖完,突然发现没有验证控件,由于数据要插入数据,如果不验证的话,会读取很多脏数据,综合了下网上的资料,决定采用ErrorProvider报警,用焦点锁定错误控件。

    Code

     SetErrorControl(tb_user, "用户名不能为空!");灌错误信息e.Cancel = true;把窗体焦点锁定在出错控件

     先试试,呵呵,在tb_user控件里点了下,去点别的控件,就点不了了。 记得CauseValidation属性被设置为True(此为默认值)

    然后把密码和密码确认也做了,但现在直接点提交,啥都没输,竟然直接通过了,哎,由于鼠标没点进去,所以我们的判断事件根本没执行。所以得在提交按钮再判断次:

    Code

    人为指定焦点,并中断往下执行,这样就达到了验证的效果了。

     至于数据集构筑,和数据处理,那是数据层的事,反正数据层是class类库,这点拿WEB数据层过来就行。

     最后说下,web 是 web.config 而 winform是app.config 你把一些字段依然可用存储在 <configuration> 里的<appSettings>,也可用把连接字段放在<connectionStrings>

    Code

    记得 “引用”System.configration 否则会提示找不到ConfigurationManager 这个在web里自动引用了,不需要手动。

    至于项目中的路径 暂时还没找到一个像 server.mapPath()这么好用的相对路径方法。

  • 相关阅读:
    JSP 编码解说
    window系统之mongoDB安装,启动及如何设置为windows服务(总结)
    operator 安装
    JavaScript学习2
    JavaScript学习3
    win7的便签很好使
    COM技术内幕第九章笔记编程工作的简化
    VS乱码之UTF8篇
    必须而不是推荐尽量使用const引用参数
    查看不到网络连接(可以上网)
  • 原文地址:https://www.cnblogs.com/kinms/p/1395025.html
Copyright © 2011-2022 走看看