技术开发 频道

VS2010与Win7共舞 :任务栏状态提示

 通过图标反映应用程序状态

 我们都知道,即时通讯软件有不同的登录状态:在线,离线,离开等等。我们通过改变应用程序任务栏按钮的图标,通过在不同的登录状态显示不同的图标,就可以很好地向用户反映当前登录状态和状态的改变。

 我们新建一个C#的Windows Form应用程序,在主面板上我们添加一个ComboBox,并编辑其中的列表项。从中我们可以选择当前的登录状态: 

 图4  编辑ComboBox

 当我们在ComboBox中的选项发生变化后,我们需要改变任务栏图标的按钮以表示登录状态的变化。这时我们需要对ComboBox控件的SelectedIndexChanged事件进行处理,在其中实现任务栏按钮图标的改变:

 private void cmbStatus_SelectedIndexChanged(object sender,

 EventArgs e)

 {

 // 根据用户选择的状态获得突破

 Icon icon = GetIconByStatus((string)cmbStatus.SelectedItem);

 // 设置应用程序任务栏按钮的图标

 Windows7Taskbar.SetTaskbarOverlayIcon(this.Handle,

 icon, (string)cmbStatus.SelectedItem);

 }

 private static Icon GetIconByStatus(string status)

 {

 // 根据用户选择的状态使用不同的图标文件

 switch (status)

 {

 case "Available":

 return new Icon("Available.ico");

 case "Appear Offline":

 return new Icon("Offline.ico");

 case "Away":

 return new Icon("Away.ico");

 }

 return null;

 }

 现在,当我们编译运行整个解决方案,我们在主界面中选择不同的登录状态,就会看到任务栏按钮的图标会根据我们选择的状态而发生改变,从此登录状态一目了然: 

 图5  任务栏按钮图标反映状态

0
相关文章