在上一节课中我们一起动手开发的简易计算器中,其实就已经大量使用了对象和对其属性的操作,只是上节课中我们的侧重点儿依然是对IDE环境的熟悉,不做过多的解释。在本节课中,我将带着大家去认识下曾今我们书写过的对象以及再次熟悉一下属性的操作。
回想一下在计算器程序中,我们是如何修改窗体标题的,是的,我们是在窗体的属性面板中,通过修改Form1窗体的Text属性来完成这个工作的,这个Text就是窗体的一个属性,同样,在属性面板中的其他内容也都是该窗体的属性。之前我们是在IDE环境的辅助下做的修改,还有没其他的办法呢?这就是我们本节课要讲到的东西——对象和对象的属性。
人类科学的发展离不开对现实场景的抽象,编程也是一个道理,反观我们生活中,接触到的任何事物其本质都是一个对象,比如人、手机、电脑、猫、狗、汽车等等。人有五官、性别,手机有按键、形状和大小,动物有皮毛、颜色。这些都是其对应物体的属性,通过属性的描述,可以大致确定要描述事物的性质。
回到我们的编程中,计算器本身就是一个对象,它有虚拟的按键,有操作面板(Form1),这些零部件又包含有其自己的属性。按键有颜色,是因为每个按键都有BackColor属性,修改该属性就可以变换按键的颜色。
/// <summary>
/// 鼠标移入背景变色事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void label1_MouseEnter(object sender, EventArgs e)
{
((Label)sender).BackColor = Color.Yellow;
}
上述代码段即计算器程序中鼠标悬停在虚拟数字按键上,通过改变按键背景色实现高亮的代码。在代码中我们看到Label的BackColor属性被赋予了黄色(Yellow),其中BackColor和Yellow都是属性(暂时可以这么理解,确切的说应该是成员),在属性前面有一个点号(.),这个点号将对象和属性分开,在示例代码中BackColor是Label对象的属性,Yellow是Color对象的属性。
下面我们通过一个控件运动的例子来进一步熟悉和操作对象和属性:
以下为部分代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
/*
*艾格网络工作室 2015.4.14
*专业编程培训,零基础入门,进阶提高
*承接微信公众平台开发、运维
*承接各类软件开发项目
*详情咨询QQ863536379
*email:aigenet@qq.com
*/
namespace Yidong
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
/// <summary>
/// 开始运动
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button1_Click(object sender, EventArgs e)
{
timer1.Enabled = true;
}
/// <summary>
/// 运动时钟周期事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void timer1_Tick(object sender, EventArgs e)
{
Point zuobiao = new Point(label1.Location.X + 20, label1.Location.Y);
label1.Location = zuobiao;
}
/// <summary>
/// 停止运动
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button2_Click(object sender, EventArgs e)
{
timer1.Enabled = false;
}
/// <summary>
/// 复位
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button3_Click(object sender, EventArgs e)
{
//如果运动时钟未停止,强制停止
timer1.Enabled = false;
//恢复运动初始位置
label1.Location = new Point(12,28);
}
}
}
更详细讲解请下载教学视频观看:点击百度网盘下载
本课源码CSDN下载:CSDN下载