实例说明
Windows系统中,当程序在后台运行时,如果某个窗口的提示信息需要用户浏览,该窗口就会不停的闪烁,这样就会吸引用户的注意。同样,如果在自己的程序中使某个窗口不停的闪烁就会吸引用户的注意。本例设计了一个闪烁的窗体,运行程序,单击【开始闪烁】按钮,窗体就会不停的闪烁,单击【停止】按钮,窗体就会停止闪烁。本例运行效果如图1.33所示。
技术要点
Windows提供了一个API函数FlashWIndow,该函数可以使窗体闪烁一下。FlashWIndow函数在C#中声明如下:
[System.Runtime.InteropServices.DllImportAttribute("user32.dll")]
public static extern bool FlashWindow(IntPtr handle, bool bInvert);
参数说明如下。
l handle:表示将要闪烁的窗体。
l bInvert:是否恢复状态。
利用该函数只能使窗体闪烁一下,如果让窗口不停地闪烁,就需要用一个Timer控件每隔一段时间就调用该函数使窗体闪烁。
实现过程
(1)创建一个项目,将其命名为Ex01_33,默认窗体为Form1。
(2)在窗体上添加PictureBox控件用来显示窗体;添加Button、Timer控件用来开始和停止闪烁。
(3)设置PictureBox控件的Image属性。
(4)主要程序代码。
timer1的Tick事件处理代码如下:
private void timer1_Tick(object sender, EventArgs e)
{
FlashWindow(this.Handle,true);
}
【开始闪烁】按钮的单击事件,用来启动窗体闪烁:
private void button1_Click(object sender, EventArgs e)
{
timer1.Enabled = true;
}
【停止】按钮的单击事件,用来停止窗体的闪烁:
private void button2_Click(object sender, EventArgs e)
{
timer1.Enabled = false;
}
举一反三
根据本实例,读者可以开发以下程序。
利用Visible属性制作一个闪烁的图片。
制作一个闪烁的按钮。