zoukankan      html  css  js  c++  java
  • 事件和winform的学习

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

             二.winform的学习

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

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

    页面:

    代码:

     public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
    
            }
            int num = 1;
            private void btnreg_Click(object sender, EventArgs e)
            {
                if (num.Equals(3))
                {
                   this.btnreg.Enabled = false;
                }
                string username =this.txtname.Text.Trim();
                string pwd = this.txtpwd.Text.Trim();
                string repwd = this.tatrepwd.Text.Trim();
                string email = this.txtemail.Text.Trim();
                string number = this.txtnumber.Text.Trim();
                string gender = string.Empty;
                if (radman.Checked = true)
                {
                    gender = this.radman.Text;
                }
                else
                {
                    gender = this.radwoman.Text;
                }
                string like = string.Empty;
                if (ckbbas.Checked)
                {
                    like += ckbbas.Text+",";
                }
                if (ckbpai.Checked)
                {
                    like += ckbpai.Text + ",";
                }
                if (ckbfoot.Checked)
                {
                    like += ckbfoot.Text + ",";
                }
                string context = string.Format("{0}{1}{2}{3}{4}{5}", username, pwd, email, number,gender,like);
                File.WriteAllText("dariy.txt", context);
                if (string.IsNullOrEmpty(username) || string.IsNullOrEmpty(pwd) || string.IsNullOrEmpty(email) || string.IsNullOrEmpty(number))
                {
                    MessageBox.Show("注册任意项不能为空");
                    num++;
                }
                else if (radman.Checked == false && radwoman.Checked == false)
                {
                    MessageBox.Show("注册失败,请选择性别");
                    num++;
                }
                else if (!pwd.Equals(repwd))
                {
                    MessageBox.Show("注册失败,密码不不一致,请重新输入");
                    num++;
                }
                else
                {
                    Regsuccess reg = new Regsuccess(username);
                    reg.Show();
                }
            }
    
            private void timer1_Tick(object sender, EventArgs e)
            {
                this.btnreg.Enabled = true;
            }
        }

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

     public partial class Regsuccess : Form
        {
            string context = string.Empty;
            public Regsuccess(string n)
            {
                InitializeComponent();
                context = n + "好,欢迎来学习";
            }
            
            private void timer1_Tick(object sender, EventArgs e)
            {
                context = context.Substring(1) + context.Substring(0,1);
                this.lbltim.Text = context;
            }
        }

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

    我是小白,新建立了一个的群:461431726,希望在这里和大家一起交流,共同学习。前端的话建议加群:646564351,谢谢
  • 相关阅读:
    Repeater控件分页例子
    利用Repeater控件显示主-从关系数据表 (NestedRepeater.aspx)
    Visual C#设计多功能关机程序(2)
    ASP.Net 数据绑定之选择合适的数据控件
    模板化数据绑定控件示例
    Visual C#设计多功能关机程序(1)
    利用Repeater控件显示主-从关系数据表 (NestedRepeater.aspx.cs)
    iBatis 调用 PostgreSQL 存储过程返回结果集
    SubVersion 安装为 Windows 服务 (Service)
    Eclipse 运行使用指定的 JVM m2eclipse 插件找不到 com.sun 的 defaulttools.jar 的解决方案
  • 原文地址:https://www.cnblogs.com/dyxd/p/4122195.html
Copyright © 2011-2022 走看看