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