秋声赋
简单易懂的现代魔法: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.想想为什么要响应键盘就要删掉按钮呢?

攻陷之神Keima
攻陷之神Keima回复给帖子:6648066
展开Biu

irisr 发表于 2012-4-10 10:43

soga~

是souka

[查看全文]
攻陷之神Keima
能做出来的都是天才
展开Biu

{:43_8915:}能做出来的都是天才...学习学习好了

[查看全文]
攻陷之神Keima
这次作业好难
展开Biu

{:43_8928:}这次作业好难。是因为没好好看2吗

[查看全文]
l001213
好了终于修改过来了
展开Biu

GN小粒子 发表于 2013-5-8 13:23

好了终于修改过来了= =

switch(e.KeyCode)

{

加上MessageBox.Show(e.KeyCode.ToString().Replace('D', ' ')); 就没了

[查看全文]
l001213
虽然完全不知道怎么回事
展开Biu

{

if (e.KeyCode == Keys.B)

MessageBox.Show(e.KeyCode.ToString().Replace('D', ' '));

else if (e.KeyCode == Keys.D5)

MessageBox.Show(e.KeyCode.ToString().Replace('D', ' '));

else if (e.KeyCode == Keys.D2)

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

else if (e.KeyCode == Keys.D4)MessageBox.Show(e.KeyCode.ToString().Replace('D', ' ')); ;

}

虽然完全不知道怎么回事,但还是做出来了

[查看全文]
l001213
有种继续点
展开Biu

l001213 发表于 2013-6-19 23:57

MessageBox.Show(“有种继续点”); 这个放不进函数里放进去以后括号里的下面有红线,,,还有那个括号我 ...

好了,自己搞定了

[查看全文]
l001213
本帖最后由
展开Biu

本帖最后由 l001213 于 2013-6-20 00:01 编辑

MessageBox.Show(“有种继续点”); 这个放不进函数里放进去以后括号里的下面有红线,,,还有那个括号我用键盘打不出来,键盘上的括号比函数里的大.,是因为冒号不是相同的缘故么

[查看全文]
丶_Never_though
教程里的函数在哪
展开Biu

教程里的函数在哪

[查看全文]