窗体创建的两种方式:
(1)自动生成的是:
Application.Run(new Form1());
相当于:
Form1 f = new Form1(); Application.Run(f);
(2)显示新的窗体
Form2 f = new Form2( ); f.Show();
二; 事件
Windows 系统中处处是事件:
鼠标按下
鼠标释放
键盘键按下……
Windows 通过随时响应用户触发的事件做出相应的响应——事件驱动机制
WinForms 应用程序也是事件驱动的
开发人员针对感兴趣的事件,编写相应的事件处理程序
编写事件处理程序::::
1、选中控件
2、在“属性”窗口中单击“闪电”图标
3、找到要处理的事件
4、生成事件处理方法
5、编写处理代码
例:随鼠标移动,显示鼠标当前坐标
点击选中窗体
属性窗体中找到MouseMove事件
双击事件生成事件处理程序框架
编写代码
private void Form1_MouseMove(object sender, MouseEventArgs e) { this.Text = string.Format("鼠标位置({0},{1})", e.X, e.Y); }
运行图;
常用窗体事件
Load :窗体加载事件(即将显示尚未显示),常用作初始化功能
Click事件:鼠标单击事件
DoubleClick事件:鼠标双击事件
MouseMove :鼠标移动事件
KeyDown :键盘按下事件
KeyUp :键盘释放事件
小例子:单击窗体计1分,双击窗体计10分,编写程序,随时显示得分总数。
定义变量n存储分数,初值为0
单击事件click中n+1,并刷新
双击事件DoubleClick中n+10,并刷新
在窗体上设置单击
private void Form1_MouseClick(object sender, MouseEventArgs e) { n += 1; string s = string.Format("得分{0}", n); this.Text = s; }
运行如下:
双击如下;
private void Form1_MouseDoubleClick(object sender, MouseEventArgs e) { n += 10; string s = string.Format("得分{0}", n); this.Text = s; }
运行图;
这个还有点缺陷,双击本该是23,但却成啦24,双击时记上的单击的那下
(2)菜单控件
创建菜单的步骤:
1、切换设计器
2、工具箱→所有 Windows 窗体
3、向窗体添加 MenuStrip 控件
4、设置菜单的属性和事件
设计学生管理菜单,注意菜单分隔条的设计
实现“退出”功能
关闭窗体,调用窗体类的Close方法
关闭当前窗体 this.Close( );
private void 退出ToolStripMenuItem_Click(object sender, EventArgs e) { this.Close(); }