内容发布更新时间 : 2024/11/20 17:32:47星期一 下面是文章的全部内容请认真阅读。
第1章
上机实验指导
实验1 Windows窗体程序
【开发语言及实现平台或实验环境】 ? C#语言;
? Visual Studio 2005/2008。 【实验目的】
掌握Windows窗体程序中菜单、工具栏、定时器以及其他常用控件的使用。 【实验要求】
掌握基本控件的常用属性和事件代码的编写。 【实验步骤】
GroupBox示例:通过单选按钮改变窗体颜色。 (1)设计本例的界面,如图1.1所示。 代码如下。
{
if (radioButton1.Checked) {
this.BackColor = Color.Gray; } }
private void radioButton2_CheckedChanged(object sender, EventArgs e) {
if ((sender as RadioButton).Checked) {
this.BackColor = Color.Blue; } }
图1.1 GroupBox的演示程序
private void radioButton1_CheckedChanged(object sender, EventArgs e)
说明:这里针对“灰色”单选按钮和“蓝色”单选按钮写了不同的代码,主要是想告诉大家一些as的用法。sender是引发这个事件的控件,它不是代表radioButton1,就是代表radioButton2。但是这个地方是不能够直接写sender.Checked的,这是因为sender是object类型的对象,并不存在Checked属性,即使sender这个时候是对radioButton2的引用。这
Visual C#.NET实验与案例教程 时候可以通过as进行类型转换,这样就可以使用Checked属性来判定按钮的选中状态。
练习:如果在界面上有很多radioButton,例如10个。我们希望每单击一个radioButton的时候,都能弹出对话框告诉我们单击的是哪一个。很显然,我们需要对每一个按钮双击,
2 然后写入类似的代码,这是一个机械性重复的工作。为了提高效率我们应该将类似的代码封装成为一个函数,然后在每个单击按钮中调用这个函数就方便多了。
参考代码:
private void rbnClick(object sender) {
if ((sender as RadioButton).Checked)
{
MessageBox.Show(\你点击的是:\ } }
private void radioButton1_CheckedChanged(object sender, EventArgs e) {
rbnClick(sender); }
private void radioButton2_CheckedChanged(object sender, EventArgs e) {
rbnClick(sender); }
(2)显示当前的时间。 ① 新建工程。
② 在窗体上放置一个Label控件,命名为lblClock。并设置以下属性:
this.lblClock.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.lblClock.Name = \
this.lblClock.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; this.lblClock.AutoSize = false;
③ 在窗体上放置一个Timer控件,该控件可以在Component组件页中找到。并设定以下属性:
this.timer1.Enabled = true; this.timer1.Interval = 1000;
④ 双击Timer控件,编写timer1_Tick事件:
private void timer1_Tick(object sender, EventArgs e) {
lblClock.Text = DateTime.Now.ToLongTimeString(); }
说明:Timer控件的Interval属性指时间间隔。每隔一个Interval长度的时间,Timer
控件的Tick事件就触发一次。要注意,Timer控件只有唯一的事件Tick。
实验2 图 像 编 程
【开发语言及实现平台或实验环境】 ? C#语言;
? Microsoft Visual Studio .NET 2005/2008。 【实验目的】
(1)掌握图像访问中常见的类及相应的方法。
(2)掌握图像及其他图像信息的类及相应的方法和属性。 【实验步骤】
图片由彩色转换为灰度可以通过“平均法”、“敏感度法”、“直接法”来实现,使用“保存”、“上页”、“下页”等按钮来控制图片的转换、保存和浏览。 (1)设计程序界面。
① 新建名为expGray的应用程序,在项目管理器中,将默认窗体文件名由Form1改为frmPicGray,将该窗体的Text属性由Form1改为“彩色图像灰度化”。
② 在expGray项目下新建一个文件夹,将4张图片放入其中。
③ 在工具栏中找到并添加一个pictureBox1控件到窗体中,将pictureBox1的名字改为pbPicNav。
④ 在工具栏中找到并添加一个button1控件到窗体中,将button1的Name属性改为btnGrayAvg,Text属性改为“平均法”。
⑤ 在工具栏中找到并添加一个button2控件到窗体中,将button2的Name属性改为btnGraySen,Text属性改为“敏感度法”。 ⑥ 在工具栏中找到并添加一个button3控件到窗体中,将button3的Name属性改为btnGrayDir,Text属性改为“直接法”。 ⑦ 在工具栏中找到并添加一个button4控件到窗体中,将button4的Name属性改为btnSave,Text属性改为“保存图像”。 ⑧ 在工具栏中找到并添加一个button5控件到窗体中,将button5的Name属性改为btnLastPage,Text属性改为“上一张”。
⑨ 在工具栏中找到并添加一个button6控件到窗体中,将button6的Name属性改为btnNextPage,Text属性改为“下一张”。
界面设计效果如图1.2所示。
(2)设计程序代码。
① 定义三个全局变量,分别存储图片数组、当前临时图片和图片的序号。
Bitmap[] bmp; Bitmap tempBmp; int n = 0; 3 ② 在窗体加载的时候将图片的位置存储在bmp位图数组中,将图片控件指向第一幅 上机实验指导 第 1 章