1.7 多媒体光盘
本节主要介绍了如何自动启动多媒体光盘和触摸屏的相关技术。自动启动多媒体光盘技术应用十分广泛,现在的光盘大多应用这些技术,节省了用户单击进入的时间。 实例027 自动启动的多媒体光盘程序 实例说明
用户在安装软件时,将光盘放入光驱内,光盘会自动运行,进行安装操作,该功能是如何实现的呢?本例介绍如何制作“自动安装的光盘程序”,程序运行效果如图1.27所示。 技术要点
其实,实现光盘的自动运行非常简单,当用户打开自动运行的光盘时,会发现光盘中有几个特殊的文件,分别为“autorun.exe”、“run.ico”和“autorun.inf”,其中“autorun.exe”是光盘自动播放时执行的可执行文件,“run.ico”是光盘的图标,“autorun.inf”是一个INI文件。只要光盘中包含这些文件,那么在将光盘放入光驱时,就会自动运行。 实现过程
(1)创建一个项目,将其命名为Ex01_27,默认窗体为Form1。 (2)为Form1窗体添加背景图片Button控件。 (3)主要程序代码。
private void Form1_Load(object sender, EventArgs e) {
StreamWriter sw = new StreamWriter(\ sw.WriteLine(\
sw.WriteLine(\ sw.WriteLine(\ sw.Close(); }
(4)运行程序,将可执行文件命名为“autorun.exe”,该文件就是光盘自动播放时打开的文件。 (5)选择一个图标,命名为“run.ico”,该图标在光驱读盘时显示。
(6)在刻光盘时,将上面的“run.ico”、“autorun.inf”和“autorun.exe”3个文件刻录到光盘中。 举一反三
根据本实例,读者可以开发以下程序。
设计多媒体宣传光盘。 制作后门程序。
实例028 为触摸屏程序添加虚拟键盘 实例说明
由于触摸屏没有键盘,只能利用屏幕操作。如果要输入数据或查找数据,需要制作一个虚拟键盘,以方便用户输入。本例介绍如何实现虚拟键盘的程序设计。运行本例,效果如图1.28所示。 技术要点
本例中用到了Lable控件的透明属性和字符串截取技术。主要是使用Substring()方法。下面详细介绍一下该方法。
Substring()方法用来从此实例检索子字符串。子字符串从指定的字符位置开始且具有指定的长度。其语法结构如下:
public string Substring (int startIndex,int length) 参数说明如下。
l startIndex:子字符串起始位置的索引。 l length:子字符串中的字符数。
l 返回值:一个String,等于此实例中从startIndex开始的长度为length的子字符串,如果startIndex等于此实例的长度且length为零,则为Empty。 实现过程
(1)创建一个项目,将其命名为Ex01_28,默认窗体为Form1。
(2)在窗体上添加2个Panel控件,1个TextBox控件和许多Label控件,每个Label控件对应背景图片上的1个按钮。
(3)为Panel控件添加背景图片,并将Label控件的BackColor设置为透明。 (4)主要程序代码。
private void Form1_Load(object sender, EventArgs e) {
lbl_0.Click += new EventHandler(lbl_Click); lbl_1.Click += new EventHandler(lbl_Click); lbl_2.Click += new EventHandler(lbl_Click); lbl_3.Click += new EventHandler(lbl_Click);
lbl_4.Click += new EventHandler(lbl_Click); lbl_5.Click += new EventHandler(lbl_Click); lbl_6.Click += new EventHandler(lbl_Click); lbl_7.Click += new EventHandler(lbl_Click); lbl_8.Click += new EventHandler(lbl_Click); lbl_9.Click += new EventHandler(lbl_Click); lbl_Q.Click += new EventHandler(lbl_Click); lbl_W.Click += new EventHandler(lbl_Click); lbl_R.Click += new EventHandler(lbl_Click); lbl_E.Click += new EventHandler(lbl_Click); lbl_T.Click += new EventHandler(lbl_Click); lbl_Y.Click += new EventHandler(lbl_Click); lbl_U.Click += new EventHandler(lbl_Click); lbl_I.Click += new EventHandler(lbl_Click); lbl_O.Click += new EventHandler(lbl_Click); lbl_P.Click += new EventHandler(lbl_Click); lbl_A.Click += new EventHandler(lbl_Click); lbl_S.Click += new EventHandler(lbl_Click); lbl_D.Click += new EventHandler(lbl_Click); lbl_F.Click += new EventHandler(lbl_Click); lbl_G.Click += new EventHandler(lbl_Click); lbl_H.Click += new EventHandler(lbl_Click); lbl_J.Click += new EventHandler(lbl_Click); lbl_K.Click += new EventHandler(lbl_Click); lbl_L.Click += new EventHandler(lbl_Click); lbl_Z.Click += new EventHandler(lbl_Click); lbl_X.Click += new EventHandler(lbl_Click);
lbl_C.Click += new EventHandler(lbl_Click); lbl_V.Click += new EventHandler(lbl_Click); lbl_B.Click += new EventHandler(lbl_Click); lbl_N.Click += new EventHandler(lbl_Click); lbl_M.Click += new EventHandler(lbl_Click); label44.Click += new EventHandler(label44_Click); }
将选中的数字或字母加入TextBox.Text的实现代码如下: void lbl_Click(object sender, EventArgs e) {
Label l = (Label)sender;
textBox1.Text += l.Name.Substring(4, 1); textBox1.SelectionStart = textBox1.Text.Length; } 举一反三
根据本实例,读者可以实现以下程序。 制作注册控件的程序。 制作网络程序复制的程序。 1.8 窗体效果
本节主要是对窗体的透明度、颜色渐变、背景及边框的相关技术进行讲解。在项目开发中窗体的设计会影响用户对软件的整体印象,所以窗体的效果要设计的美观一些。下面将介绍一些常用的效果。
实例029 半透明渐显窗体 实例说明
很多专业软件在启动前都会显示一个说明该软件信息或用途的窗口,有的则是一个漂亮的启动界面,如Adobe公司的Acrobat。该窗口使软件显得更加专业。本例将实现一个半透明的渐显窗体,运行本软件会显示一个启动画面,并且画面会将完全透明慢慢到半透明的效果显示在用户面前。效果如图1.29所示。
图1.29 半透明溅显窗体
技术要点
在其他开发环境中,实现窗体的半透明渐显需要调用API函数,实现非常困难,但在C# 2.0中,窗体提供了Opacit属性来设置窗体的透明度。
Form.Opacit属性用来获取或设置窗体的不透明度级别,其语法格式如下: public double Opacity { get; set; }
l 属性值:窗体的不透明度级别。默认值为1.00。 实现过程
(1)创建一个项目,将其命名为Ex01_29,默认窗体为Form1。
(2)在Form1窗体中设置背景图片,添加Timer控件用来触发渐变事件。 (3)设置Timer控件的Enable属性为True,设置Interval属性为1000。 (4)主要程序代码。
private void timer1_Tick(object sender, EventArgs e) {
this.Opacity += 0.1; } 举一反三
根据本实例,读者可以开发以下程序。
使窗体由透明状态显现出来,可以用Time控件来控制窗体由透明到显示所需的时间。 可以使窗体为透明状态,只显示窗体上的控件。 实例030 窗口颜色的渐变 实例说明
在程序设计时,可以通过设置窗体的BackColor属性来改变窗口的背景颜色。但是这个属性改变后整个窗体的客户区都会变成这种颜色,并且非常单调。如果窗体的客户区可以向标题栏一样能够体现颜色的渐变效果,那么窗体风格将会另有一番风味。本例设计了一个颜色渐变的窗体。效果如图1.30所示。 技术要点
C#中可以通过Color.FromArgb( )方法返回一种颜色,下面详细介绍一下该方法。