您的位置:首页 > 编程语言

device-emulator1源代码阅读之模拟IIS处理audio

2008-04-09 21:44 369 查看
在4月的博客中通过游戏学习java面向对象编程(1)使用java来开发了一个小游戏,通过这个游戏我们初步介绍了java的继承,二维数组

以及swing的事件机制。

最近可能要开始教s1了。所以必须要准备一下C#。

首先需要一个Button,这个Button如果用java可以从swing的jbutton继承而来。但是我们的button要会变颜色。

并且为了后边的需要,我们最好给它2个属性,用来表示x,y坐标。

在c#中我们如何自定义呢?先看代码

using System;

using System.Collections.Generic;

using System.Text;

using System.Windows.Forms;

using System.Drawing;

//author:pengzj

namespace PengzjDll

{

public class MyButton:Button

{

public MyButton(int x,int y)

{

this.x = x;

this.y = y;

this.BackColor = Color.Yellow;

}

private int x;

public int X

{

get { return x; }

set { x = value; }

}

private int y;

public int Y

{

get { return y; }

set { y = value; }

}

//改变颜色

public void changeColor()

{

if (this.BackColor != Color.Pink)

{

this.BackColor = Color.Pink;

}

else

{

this.BackColor = Color.Yellow;

}

}

}

}

然后再新建一个Form。做这个的时候,遇到一个问题,如何构造一个5行5列的按钮矩阵。呵呵,c#不擅长的我,为此查了vs的帮助,帮助文档好强大

一下就找到了tabelLayou这个可以自定义布局的东东。

且看我们是如何通过代码添加5行5列25个按钮到form中去的。

private void InitButtons()

{

myButtons = newPengzjDll.MyButton[5, 5];

for (int i = 0; i < 5; i++)

{

for (int j = 0; j < 5; j++)

{

myButtons[i, j] = new MyButton(i , j );

//添加事件委托

myButtons[i, j].Click += new System.EventHandler(this.buttonmy_Click);

//添加button到tableLayoutpanel中布局

this.tableLayoutPanel1.Controls.Add(myButtons[i, j], i, j);

//让按钮充满整个网格

myButtons[i, j].Dock = System.Windows.Forms.DockStyle.Fill;

//让边界设为0

myButtons[i,j].Margin=new System.Windows.Forms.Padding(0);

myButtons[i, j].Enabled = false;

}

}

}

以上代码是整个程序非常重要的部分。大家仔细看代码和注释。

其中事件的代码如下。这个事件就是以上的button委托来调用的的。

private void buttonmy_Click(object sender, EventArgs e)

{

step++;

labelStep.Text = step.ToString();

MyButton btn = (MyButton)sender;

//MessageBox.Show(btn.X+","+btn.Y);

changeRound(btn);

if (isWin()) //isWin()方法检测是否所有的按钮都已经变色。省略

{

EnableAllButtons(false);

timerCount.Stop();

MessageBox.Show("恭喜,恭喜,你搞定了");

}

}

ok.关键的问题已经搞定了,剩下的相邻按钮变色,检测是否赢等和java完全一样,我是直接复制的java改的。大家自己去看吧。

最后运行的结果见下图:





Technorati 标签: c#,委托,tableLayout,pengzj
这里不能上传源代码大家到我的51cto博客去下载吧。
本文出自 “java技术” 博客,请务必保留此出处http://cnjava.blog.51cto.com/1208887/339457
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: