记得现在已经不在学习winform啦,可是我们为什么还是学习啦,我感觉就是帮助我们往下一个层次进发啦,因为从控制台直接开始进入webform的学习,我们很难接受啦,估计效率也不高啦,所以我们就简单的学习一下winfrom啦,感觉今天学习起来比console简单,或许是因为我们之前在学校接触过窗体吧,但是之前我可是一点代码都不会写,那时间学习只有应付考试的心理,而且在上实验课时间就是看着书上的代码给敲打到运行环境里面,也没有知道这是什么意思,但是在现在接触时间就是感觉熟悉,而那些在写代码时间感觉真的没有那么难啦,甚至感觉还是这个写代码简单,嘿嘿,我也知道学习winform仅仅是这两天的时间吧,熟悉下这个程序罢啦。下面简单的举几个例子说下几个事件。
     一.事件 
  下面举例说明一个事件的方法:
  1. class Cat
  2. {
  3. private string name;
  4.  
  5. public string Name
  6. {
  7. get { return name; }
  8. set { name = value; }
  9. }
  10. public Cat(string catname)
  11. {
  12. Name = catname;
  13. }
  14. public delegate void CatShoutEventHandler(object sender,CatShoutEventArgs args);
  15. public event CatShoutEventHandler CatShou;//定义一个事件 必须是公有的,而且是 event 加上委托成员
  16. public void Shout()
  17. {
  18. Console.WriteLine("喵!我是{0}",Name);
  19.  
  20. CatShoutEventArgs e=new CatShoutEventArgs();
  21. e.Name = this.Name;
  22. if (CatShou != null)
  23. {
  24. CatShou(this,e);
  25. }
  26. }
  27. }
  1. class CatShoutEventArgs:EventArgs //包含事件数据的类的基类
  2. {
  3. public string Name { set; get; }
  4. }
  1. class Mouse
  2. {
  3. private string name;
  4. public string Name
  5. {
  6. get { return name; }
  7. set { name = value; }
  8. }
  9.  
  10. public Mouse(string name)
  11. {
  12. Name = name;
  13. }
  14. public void Run(object sender,CatShoutEventArgs args)
  15. {
  16. Console.WriteLine("{0}来了,{1}快跑啊",args.Name,Name);
  17. }
  18. }
  1. class Program
  2. {
  3. static void Main(string[] args)
  4. {
  5. Cat cat = new Cat("tom");
  6. Mouse m1 = new Mouse("舒克");
  7. Mouse m2 = new Mouse("贝塔");
  8.  
  9. cat.CatShou += new Cat.CatShoutEventHandler(m1.Run);
  10. cat.CatShou += new Cat.CatShoutEventHandler(m2.Run);
  11. cat.Shout();
  12. Console.ReadKey();
  13. }
  14. }

二.winform的学习

说到学习winform,我想大家都感觉不就是拖拉控件吗?可是拖拉控件的后台程序我之前真的不会写额,或许真的很垃圾吧,但是我想大家都有个开始吧,今天就是我学C#以来在控制台上显示的结束,而程序可以给我们看到一个个的功能,这还是开始吧,感觉学习这个还是比较有兴趣的,下面是一个是一个实现几个空间功能的一小段程序,我为了给自己留一个小纪念,就把程序粘贴上来吧,嘿嘿,用到了lable,textbox,button,timer等以及它的事件。实现以下功能:

1:登录事件 检测各个控件是否为空,如果是空 弹出注册失败 如果成功 则显示新窗体 并且 新窗体上面显示 “XXX你好! 欢迎来到云和学院学习Net”走马灯形式
2:密码输入三次那么登录按钮不可用 3分钟之后可用
3:把注册信息的各个数据按照 “Rocky|admin|renyanlei@aliyun.com|18301412747|男|足球,篮球,排球”写入到一个文本文件中

页面:

代码:

  1. public partial class Form1 : Form
  2. {
  3. public Form1()
  4. {
  5. InitializeComponent();
  6. }
  7.  
  8. private void Form1_Load(object sender, EventArgs e)
  9. {
  10.  
  11. }
  12. int num = ;
  13. private void btnreg_Click(object sender, EventArgs e)
  14. {
  15. if (num.Equals())
  16. {
  17. this.btnreg.Enabled = false;
  18. }
  19. string username =this.txtname.Text.Trim();
  20. string pwd = this.txtpwd.Text.Trim();
  21. string repwd = this.tatrepwd.Text.Trim();
  22. string email = this.txtemail.Text.Trim();
  23. string number = this.txtnumber.Text.Trim();
  24. string gender = string.Empty;
  25. if (radman.Checked = true)
  26. {
  27. gender = this.radman.Text;
  28. }
  29. else
  30. {
  31. gender = this.radwoman.Text;
  32. }
  33. string like = string.Empty;
  34. if (ckbbas.Checked)
  35. {
  36. like += ckbbas.Text+",";
  37. }
  38. if (ckbpai.Checked)
  39. {
  40. like += ckbpai.Text + ",";
  41. }
  42. if (ckbfoot.Checked)
  43. {
  44. like += ckbfoot.Text + ",";
  45. }
  46. string context = string.Format("{0}{1}{2}{3}{4}{5}", username, pwd, email, number,gender,like);
  47. File.WriteAllText("dariy.txt", context);
  48. if (string.IsNullOrEmpty(username) || string.IsNullOrEmpty(pwd) || string.IsNullOrEmpty(email) || string.IsNullOrEmpty(number))
  49. {
  50. MessageBox.Show("注册任意项不能为空");
  51. num++;
  52. }
  53. else if (radman.Checked == false && radwoman.Checked == false)
  54. {
  55. MessageBox.Show("注册失败,请选择性别");
  56. num++;
  57. }
  58. else if (!pwd.Equals(repwd))
  59. {
  60. MessageBox.Show("注册失败,密码不不一致,请重新输入");
  61. num++;
  62. }
  63. else
  64. {
  65. Regsuccess reg = new Regsuccess(username);
  66. reg.Show();
  67. }
  68. }
  69.  
  70. private void timer1_Tick(object sender, EventArgs e)
  71. {
  72. this.btnreg.Enabled = true;
  73. }
  74. }

下一个页面仅有一个lable和timer控件:

  1. public partial class Regsuccess : Form
  2. {
  3. string context = string.Empty;
  4. public Regsuccess(string n)
  5. {
  6. InitializeComponent();
  7. context = n + "好,欢迎来学习";
  8. }
  9.  
  10. private void timer1_Tick(object sender, EventArgs e)
  11. {
  12. context = context.Substring() + context.Substring(,);
  13. this.lbltim.Text = context;
  14. }
  15. }

好啦,今天大体上就讲啦这两方面,感觉还可以啦,感觉前面学习的在今天的程序中用得到很多,这个我们能意识到啦,之前曾说过我没来培训前写过一个小的网站,那时间的感觉就是什么也不知道,看下其他人写的方法,完全仿写的,现在能够知道代码的意思啦,而且学完啦基础再写小程序感觉知道怎么实现功能啦,感觉良好啊,嘿嘿,就像在写上面的传问题,我可以理解为构造函数在控制台的Main方法中的逆运用,还是蛮易理解的额,嘿嘿。对啦,我写的程序,可能会有错,但是各位大神发现啦要帮我改正,不要太过激啦,我只是一个初学者,还有会有用词不当的地方吧,大家帮我提出来,我会很感谢的,我在云和学院学习,我是在这培训,但是我的学习还是依靠自己的,我的程序出错错就是我的错,和培训机构没有任何关系的,老师只是教我们怎么学习,怎么写好程序,但是不可能一切都交给我们,所以不论怎么样,我都会好好学习的,谢谢!

事件和winform的学习的更多相关文章

  1. Winform的学习

    昨天由于一些原因没有上课啦,虽然也看啦一些东西,但是感觉太少也就没有来啦,嘿嘿,今天认真地了解啦winform,学习了一些控件的使用,但是感觉好多属性知道怎么用的,却还是记得不太清楚,感觉看到啦知道, ...

  2. AngularJs HTML DOM、AngularJS 事件以及模块的学习(5)

    今天的基础就到了操作DOM,事件和模块的学习,其实我个人感觉学习起来AngularJS并没有想象中的那么的艰难,可能是因为这个太基础化吧,但是我们从初学开始就应该更加的自信一些,后来我可能会写一个小的 ...

  3. WinForm多线程学习文档

    基础篇 怎样创建一个线程 受托管的线程与 Windows线程 前台线程与后台线程 名为BeginXXX和EndXXX的方法是做什么用的 异步和多线程有什么关联 WinForm多线程编程篇 我的多线程W ...

  4. 8、面向对象以及winform的简单运用(事件与winform入门)

    事件 Visual studio中对可视化窗体控件的事件处理机理: 所有的.NET Framework可视化窗体控件的预定义事件,都会某一对应的“事件名+Handler”委托类型的变量.与此事件相关的 ...

  5. C#事件(Event)学习日记

    event 关键字的来由,为了简化自定义方法的构建来为委托调用列表增加和删除方法. 在编译器处理 event 关键字的时候,它会自动提供注册和注销方法以及任何必要的委托类型成员变量. 这些委托成员变量 ...

  6. iOS 事件响应者链的学习(也有叫 UI连锁链)

    当发生事件响应的时候,必须知道由谁来响应事件.在iOS中,由响应链来对事件进行响应,所有的事件响应的类都是继承于UIResponder的子类,响应链是一个由不同对象组成的层次结构,其中每个对象将依次获 ...

  7. 带有button而且能够运行单击事件的WINFORM窗口,体悟C#的创建过程

    using System; using System.Drawing; using System.Windows.Forms; namespace Window{ class Window{ stat ...

  8. 通过委托事件实现winform窗体之间的互相刷新

    新建winform窗体Form1和Form2; 接下来要通过点击Form2的按钮,实现Form1界面的同步刷新. 先展示一下最终效果: 1.Form1界面如下: 2.点击按钮弹出Form2,界面如下: ...

  9. 事件循环(EventLoop)的学习总结

    前言 在学习eventloop之前,我们需要复习一下js的单线程和异步.虽说js是单线程的,但是在浏览器和Node中都做了相应的处理.如浏览器中的web workers(工作线程),Node中的chi ...

随机推荐

  1. RSA 算法-MSDN文档

    RSA 算法 若要生成密钥对,可以从创建名为 p 和 q 的两个大的质数开始. 这两个数相乘,结果称为 n. 因为 p 和 q 都是质数,所以 n 的全部因数为 1. p. q 和 n. 如果仅考虑小 ...

  2. iOS UITableView中关于cell里的按钮被点击时如何确定是哪一个section

    在section=10:row=1:的UITableView中,每一个cell都带有一个按钮,例如如下的图片一样每一个cell中都有一个“进入店铺的按钮”,但是如果我点击相应的cell要进入对应的店铺 ...

  3. lighttpd + php 移植配置

    buildroot 内添加 lighttpd 和php 等相关选项 // make menuconfig Target packages ---> Interpreter languages a ...

  4. Google Guava 库用法整理<转>

    参考: http://codemunchies.com/2009/10/beautiful-code-with-google-collections-guava-and-static-imports- ...

  5. Quartz 与 Spring集成

    http://www.cnblogs.com/pigwing/archive/2011/07/12/2104002.html http://blog.arganzheng.me/posts/quart ...

  6. java clone对象

    本文转载至 http://blog.csdn.net/shootyou/article/details/3945221 现在Clone已经不是一个新鲜词语了,伴随着“多莉”的产生这个词语确实很“火”过 ...

  7. 开源图形数据库Neo4j介绍与安装

    图形数据库是以图形结构形式存储数据的数据库. https://neo4j.com/ Java 编写 保存为节点以及节点之间的关系 Neo4j 的数据由下面几部分构成: 节点 边 属性 无论是顶点还是边 ...

  8. 利用百度地图API根据地址查询经纬度

    传上来只是为了记录下三种jsonp方式,$.get(url, callback)方式不行,会出错 -- 必须指明返回类型为”json”才行. 或者使用$.getJSON()或者$.ajax({}). ...

  9. java---EL与ONGL的区别

    EL表达式: >>单纯在jsp页面中出现,是在四个作用域中取值,page,request,session,application.>>如果在struts环境中,它除了有在上面的 ...

  10. js学习之--Bootstrap Modals(模态框)

    http://www.runoob.com/bootstrap/bootstrap-v2-modal-plugin.html http://outofmemory.cn/bootstrap/tutor ...