事件和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 = ;
private void btnreg_Click(object sender, EventArgs e)
{
if (num.Equals())
{
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() + context.Substring(,);
this.lbltim.Text = context;
}
}
好啦,今天大体上就讲啦这两方面,感觉还可以啦,感觉前面学习的在今天的程序中用得到很多,这个我们能意识到啦,之前曾说过我没来培训前写过一个小的网站,那时间的感觉就是什么也不知道,看下其他人写的方法,完全仿写的,现在能够知道代码的意思啦,而且学完啦基础再写小程序感觉知道怎么实现功能啦,感觉良好啊,嘿嘿,就像在写上面的传问题,我可以理解为构造函数在控制台的Main方法中的逆运用,还是蛮易理解的额,嘿嘿。对啦,我写的程序,可能会有错,但是各位大神发现啦要帮我改正,不要太过激啦,我只是一个初学者,还有会有用词不当的地方吧,大家帮我提出来,我会很感谢的,我在云和学院学习,我是在这培训,但是我的学习还是依靠自己的,我的程序出错错就是我的错,和培训机构没有任何关系的,老师只是教我们怎么学习,怎么写好程序,但是不可能一切都交给我们,所以不论怎么样,我都会好好学习的,谢谢!
事件和winform的学习的更多相关文章
- Winform的学习
昨天由于一些原因没有上课啦,虽然也看啦一些东西,但是感觉太少也就没有来啦,嘿嘿,今天认真地了解啦winform,学习了一些控件的使用,但是感觉好多属性知道怎么用的,却还是记得不太清楚,感觉看到啦知道, ...
- AngularJs HTML DOM、AngularJS 事件以及模块的学习(5)
今天的基础就到了操作DOM,事件和模块的学习,其实我个人感觉学习起来AngularJS并没有想象中的那么的艰难,可能是因为这个太基础化吧,但是我们从初学开始就应该更加的自信一些,后来我可能会写一个小的 ...
- WinForm多线程学习文档
基础篇 怎样创建一个线程 受托管的线程与 Windows线程 前台线程与后台线程 名为BeginXXX和EndXXX的方法是做什么用的 异步和多线程有什么关联 WinForm多线程编程篇 我的多线程W ...
- 8、面向对象以及winform的简单运用(事件与winform入门)
事件 Visual studio中对可视化窗体控件的事件处理机理: 所有的.NET Framework可视化窗体控件的预定义事件,都会某一对应的“事件名+Handler”委托类型的变量.与此事件相关的 ...
- C#事件(Event)学习日记
event 关键字的来由,为了简化自定义方法的构建来为委托调用列表增加和删除方法. 在编译器处理 event 关键字的时候,它会自动提供注册和注销方法以及任何必要的委托类型成员变量. 这些委托成员变量 ...
- iOS 事件响应者链的学习(也有叫 UI连锁链)
当发生事件响应的时候,必须知道由谁来响应事件.在iOS中,由响应链来对事件进行响应,所有的事件响应的类都是继承于UIResponder的子类,响应链是一个由不同对象组成的层次结构,其中每个对象将依次获 ...
- 带有button而且能够运行单击事件的WINFORM窗口,体悟C#的创建过程
using System; using System.Drawing; using System.Windows.Forms; namespace Window{ class Window{ stat ...
- 通过委托事件实现winform窗体之间的互相刷新
新建winform窗体Form1和Form2; 接下来要通过点击Form2的按钮,实现Form1界面的同步刷新. 先展示一下最终效果: 1.Form1界面如下: 2.点击按钮弹出Form2,界面如下: ...
- 事件循环(EventLoop)的学习总结
前言 在学习eventloop之前,我们需要复习一下js的单线程和异步.虽说js是单线程的,但是在浏览器和Node中都做了相应的处理.如浏览器中的web workers(工作线程),Node中的chi ...
随机推荐
- JavaScript高级 面向对象(1)--添加一个div标签
说明(2017.3.28): 1. JavaScript是一种基于对象的多范式编程语言,不是面向对象,但离开对象不能活. 范式编程是指编程习惯.方式,分为过程式.对象式和函数式编程. 2. 面向对象是 ...
- MD5算法实现
MD5算法的简要叙述为: MD5以512位分组来处理输入的信息(512位分组?每次处理都取出512位数据?), 每一分组又被划分为16个32位子分组(16乘32刚好是512), 经过一些列的处理后(怎 ...
- [uboot]What is MLO file?
转自:https://coherentmusings.wordpress.com/2012/09/05/what-is-mlo-file/ I have had the Beagle-xM for a ...
- [LintCode]判断一个字符串是否包含另一个字符串的所有字符
问题描述: 比较两个字符串A和B,确定A中是否包含B中所有的字符.字符串A和B中的字符都是 大写字母. 样例 给出 A = "ABCD" B = "ACD",返 ...
- JS三大经典变量命名法
匈牙利命名法: 通过在变量名前面添加相应小写字母的符号标示作为前缀,标示出变量的作用域,类型等,前缀后面是一个或多个单词组合,单词描述了变量的用途,如i表示的是整数,s表示的是字符串.示例: var ...
- javascript实现记录文本框内文字个数
最近在做一个项目中遇到这样一个问题,要对文本框中用户输入的文字进行记数,在下面显示出来,因为我们做的是一个短信发送平台,现在我们国家的短信服务,如果你的信息超过了70个字符,短信就会按二条给你下发.所 ...
- (五)Qt实现自定义模型基于QAbstractItemModel
一个小例子 QTableView + QStandardItemModel QStandardItemModel model; //设置大小 model.setColumnCount(); //列 m ...
- Intellij IDEA Module 的Language Level的问题
最近从github上fork了张开涛的Shiro代码,IDE是Intellij IDEA.发现无论是Project还是Module,默认的Language Level都是JDK 1.5,而且每次修改都 ...
- static、extern分析
1.extern extern在变量声明中有这样一个作用:你要在demo2.cpp中引用demo1.cpp中的一个全局变量,就要在demo2.h中用extern来声明这个全局变量(或者在demo1.h ...
- goto 语句
goto 语句 自从提倡结构化设计以来,goto 就成了有争议的语句. 首先,由于 goto 语句可以 灵活跳转,如果不加限制,它的确会破坏结构化设计风格.其次,goto 语句经常带来错 误或隐患. ...