秋声赋
简单易懂的现代魔法:C#编程教程(三)

本帖最后由 丨端木丶荒冬 于 2012-4-11 22:52 编辑


简单易懂的现代魔法:C#编程教程(三)

控件与事件

第二篇帖子很无聊吧?

看不懂也没什么关系,好好接受以后的知识就行,但是要记住只要不不懂的地方一定要弄懂,可以去查资料,也可以在下面发帖问我.

然后进入这次的学习.这篇帖子会接受控件的相关概念,如属性事件,然后介绍如何响应各种事件.

以后的帖子都会像这次的一样,介绍一到两个可视化编程的知识点,都不会很长,

但是实际动手操作的地方会比以前多很多,希望大家能亲自动手实验.


控件

首先新建一个工程.大家应该还记得一开始介绍的工具栏吧?里面就有我们需要的各种各样的控件.

控件有是什么呢?

广义上来说控件是对数据和方法的封装控件可以有自己的属性方法

这点是不是和非常像呢?差不多可以认为一种控件就是一个,单个的控件就是这个类的对象.

本帖以后所说的控件,具体指的是微软已经给我们写好的那些,也就是工具栏中的那些,我们只要拿来用就好了.

控件使得可视化编程变得非常的方便.

Winform程序的开发,很大一部分是通过设置各种各样的控件完成的.

在C#中,控件除了拥有属性行为(函数)外,还有事件.

什么是事件呢?

和现实生活中的事件一样,对于一个对象(例如一个人),他不只有打人这个行为(函数),也会有正在打人这个事件.

当一个人打人的时候,就会发生在打人这个事件.

我们可以为这个事件添加一个响应它的函数,以便在这个事件发生的时候做一些我们需要的操作.

这次的帖子只会用到一个控件,Button控件,也就是按钮控件.

添加按钮控件非常简单,直接从工具箱中选中拖出来就好了.得到下图.

然后选中按钮控件,在属性面板中可以看到它具有很多的属性,我们能修改这些属性已达到我们想要的效果.

例如我们修改这个按钮的Text属性,按钮上显示的文字就会被改变.

当然还有其他很多属性,例如位置啊,大小啊,文字的字体等等.

然后进入控件的事件面板(就是属性面板旁边的小闪电)

下面的已经描述的很清楚了,当按钮被点击(Click)的时候(就是按钮发生了点击这个事件)做出某种响应的操作.

我们可以点击一下Click后面的文字框,输入一个自己定的函数名(或者点2下,vs会自动填一个函数名),然后双击它,vs就会自动为我们这个点击事件生成一个响应它的函数.

可以看到系统生成的这个参数会自动带了2个参数进来,这个到后面讲.

在这个函数中输入以前经常用的代码.

MessageBox.Show(有种继续点);

然后点击运行(F5)

点击一下按钮

现在可以理解事件的概念了吧?

下面我们来点复杂的,响应键盘输入.

把刚刚新建的按钮删掉,选择整个窗口.

这时候我们会发现窗口其实和控件一样,也有属性和事件.

在窗口的事件中,我们在KeyDown事件后加入响应函数.

在这个函数中添加如下的代码

MessageBox.Show(e.KeyCode.ToString());

解释一下,可以看到e是KeyEventArgs的一个对象,这个类提供了键盘按下,这个事件的所有信息.

例如你在打人,你打的是谁呢?打了多久呢?都是系统通过这个参数传递给我们的.

其中e.KyeCode指的是这次按下的是哪个键,

ToString()就是把这个键转换成字符串方便我们输出啦.

运行下看看效果.

在运行中随便按下一个键试试.

如何?很有意思吧?



上面就是这次的全部内容.

这次,我介绍了控件和事件的概念

也通过响应发生的事件弹出了各种各样的对话框.

作业:

1.每次点击按钮都弹出不同的文字.

2.判断按键,只有按下的键是 5,4,2,B的时候才弹出窗口.

3.想想为什么要响应键盘就要删掉按钮呢?

GN小粒子
后面要加冒号啊
展开Biu

秋声赋 发表于 2013-5-7 19:05

case 后面要加冒号啊

#27m?!

这样啊#22m

[查看全文]
秋声赋
搞了一上午
展开Biu

GN小粒子 发表于 2013-5-7 13:32

好吧,我跪了,搞了一上午,实在是不行了,LZ大大求救

我写的代码是

swich(e.KeyCode);

case 后面要加冒号啊

[查看全文]
GN小粒子
本帖最后由
展开Biu

本帖最后由 GN小粒子 于 2013-5-7 13:35 编辑

好吧,我跪了,搞了一上午,实在是不行了,LZ大大求救

我写的代码是

swich(e.KeyCode);

{

case Keys.D5;

case Keys.D4;

case Keys.D2;

case Keys.B;

MessageBox.Show(((char)e.KeyCode).ToString());break;

}

但是在测试运行的时候,系统表示case是无效表达项|||orz

是之前的代码就错误了么?

[查看全文]
乖◐ω◑
学到东西了
展开Biu

学到东西了

[查看全文]
蘑菇Maysfolo
作业一时超
展开Biu

作业一时超~长反射弧才想到random= =

[查看全文]
konghaizhilei
不错不错
展开Biu

不错不错

[查看全文]
lenice
新大陆研究
展开Biu

新大陆研究_北极 发表于 2013-1-1 20:00

找不到keyDown选项_(:3」 ∠)_

你的窗口属性没在事件列表状态,点击那个闪电按钮。

[查看全文]
暑假把文完结掉
正在学这个
展开Biu

正在学这个C#来着先马克然后慢慢研究的0 0

[查看全文]